Application 对象用于存储和访问来自任何页面的变量,类似于 session 对象。不同之处在于,所有的用户分享一个 Application 对象,而 session 对象和用户的关系是一一对应的。Application 对象握有会被应用程序中的许多页面使用的信息(比如数据库连接信息)。这意味着可以从任何的页面访问这些信息。同时也意味着你可在一个地点改变这些信息,然后这些改变会自动反映在所有的页面上。而缓存和Application一样是所有用户共享的,但是缓存的生命周期可以根据需要而设定,可以是一秒两秒,也可以是一年两年,前提是这期间应用程序一直在运行,而Application则是存在于应用程序运行期间,当然也可以在程序中干掉它。这两者现在更多的是用缓存。

下面一段简单的MVC代码,用来测试这三者的区别

  1. public class Cache_Session_ApplicationController : Controller
  2. {
  3. public ActionResult Index()
  4. {
  5. return View();
  6. }
  7. public JsonResult SetData(string app,string sess,string cvalue)
  8. {
  9. HttpContext.Application.Lock();
  10. //Application里面的key值是可以重复的
  11. if (null == HttpContext.Application.Get("app"))
  12. HttpContext.Application.Add("app", app);
  13. else
  14. HttpContext.Application.Set("app", app);
  15. HttpContext.Application.UnLock();
  16.  
  17. Session["sess"] = sess;
  18.  
  19. MemoryCache cache = MemoryCache.Default;
  20. if (null != cache.Get("cache"))
              cache.Remove("cache");
  21. CacheItemPolicy policy = new CacheItemPolicy();
  22. policy.AbsoluteExpiration = DateTime.Now.AddDays();
  23. cache.Add("cache", cvalue, policy);
  24. return new JsonResult() { Data = new { status = "OK" } };
  25. }
  26. public JsonResult GetData()
  27. {
  28. var app= HttpContext.Application.Get("app");
  29. var sess = Session["sess"];
  30. var cache = MemoryCache.Default.Get("cache");
  31. return new JsonResult() { Data=new {app=app??"NULL" , sess = sess??"NULL" , cache = cache??"NULL"} };
  32. }
  33. }
  1. <div>
  2. <input type="button" onclick="SetData()" value="设置值" />
  3. <input type="text" placeholder="application的值" id="zApp"/>
  4. <input type="text" placeholder="session的值" id="zSess" />
  5. <input type="text" placeholder="cache的值" id="zCache" />
  6.  
  7. <input type="button" onclick="GetData()" value="获取值" />
  8. <label>application的值:</label><label id="appL"></label><br />
  9. <label>session的值:</label><label id="sessL"></label><br />
  10. <label>cache的值:</label><label id="cacheL"></label><br />
  11.  
  12. </div>
  13.  
  14. <script type="text/javascript">
  15. function GetData() {
  16. $.ajax({
  17. url: "/Cache_Session_Application/GetData",
  18. type: "post",
  19. async: true, //或false,是否异步
  20. success: function (data) {
  21. $("#appL").text(data.app);
  22. $("#sessL").text(data.sess);
  23. $("#cacheL").text(data.cache);
  24. },
  25. error: function () {
  26.  
  27. }
  28.  
  29. });
  30. }
  31. function SetData() {
  32. $.ajax({
  33. url: "/Cache_Session_Application/SetData",
  34. type: "post",
  35. async: true, //或false,是否异步
  36. data: { app: $("#zApp").val(), sess: $("#zSess").val(), cvalue: $("#zCache").val()},
  37. success: function (data) {
  38. alert(data.status);
  39. },
  40. error: function () {
  41.  
  42. }
  43.  
  44. });
  45. }
  46. </script>
  1.  

.Net application,Session,Cache简单比较的更多相关文章

  1. application session 实现简单的在线聊天人数的统计

    写了快一年的asp.net,application对象还真没怎么用过.看了看书,根据这两个对象的特性写了一个简单的聊天室程序.真的是非常的简陋 ASP.Net中有两个重要的对象,一个是applicat ...

  2. 异步 HttpContext.Current实现取值的方法(解决异步Application,Session,Cache...等失效的问题)

    在一个项目中,为了系统执行效率更快,把一个经常用到的数据库表通过dataset放到Application中,发现在异步实现中每一次都会出现HttpContext.Current为null的异常,后来在 ...

  3. Asp.net 服务器Application,Session,Cookie,ViewState和Cache区别

    2.8 Context 的使用Context 对象包含与当前页面相关的信息,提供对整个上下文的访问,包括请求.响应.以及上文中的Session 和Application 等信息.可以使用此对象在网页之 ...

  4. Application,Session,Cookie,ViewState和Cache区别

    在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保 ...

  5. Session、Application、Cache

    [Asp.Net]状态管理(Session.Application.Cache) 上篇博文介绍了在客户端状态管理的两种方式:http://www.cnblogs.com/wolf-sun/p/3329 ...

  6. Asp.net 中ViewState,cookie,session,application,cache的比较

    Asp.net 中的状态管理维护包含ViewState,cookie,session,application,cache五种方式,以下是它们的一些比较: 1.存在于客户端还是服务端 客户端: view ...

  7. [区别]APPlication,Session,Cookie,ViewState和Cache

    原文发布时间为:2009-08-01 -- 来源于本人的百度文章 [由搬家工具导入] 在ASP.NET中,有很多种保存信息的对象.例如:APPlication,Session,Cookie,ViewS ...

  8. 转载ASP.NET 状态管理Application,Session,Cookie和ViewState用法

    转载原地址 http://www.cnblogs.com/cuishao1985/archive/2009/09/24/1573403.html ASP.NET状态管理 APPlication,Ses ...

  9. ASP.NET Application,Session,Cookie和ViewState等对象用法和区别 (转)

    在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保 ...

随机推荐

  1. Django基础——ORM字段和字段参数

    ORM概念: 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象( 1. 不同的程序员写的SQL水平参差不齐 2. ...

  2. 【Codeforces 1073D】Berland Fair

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 我们可以从左到右枚举一轮. 定义一个cost表示这一轮花费的钱数 如果cost+a[i]<=T那么就可以买它,并且买下它(模拟题目要求) ...

  3. 30、Java并发性和多线程-阿姆达尔定律

    以下内容转自http://ifeve.com/amdahls-law/: 阿姆达尔定律可以用来计算处理器平行运算之后效率提升的能力.阿姆达尔定律因Gene Amdal 在1967年提出这个定律而得名. ...

  4. GNS3和Cisco IOU搭建路由交换实验-IOU篇

    http://www.mamicode.com/info-detail-605879.html

  5. Java Number类(数据类型的包装类)

    Java Number 一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double等. 例如: int i = 5000; float gpa = 13.65 ...

  6. Neo4j教程 Neo4j视频教程 Neo4j 图数据库视频教程

    课程发布地址 地址: 腾讯课堂<Neo4j 图数据库视频教程> https://ke.qq.com/course/327374?tuin=442d3e14 作者 庞国明,<Neo4j ...

  7. linux sed 命令的用法

    原文  http://blog.chinaunix.net/uid-24426415-id-77244.html ------------------------------------------- ...

  8. Caffe——清晰高效的深度学习(Deep Learning)框架

    Caffe(http://caffe.berkeleyvision.org/)是一个清晰而高效的深度学习框架,其作者是博士毕业于UC Berkeley的贾扬清(http://daggerfs.com/ ...

  9. 关于Android中的四大组件(Service的开启与关闭)

    前言 服务(Service)是Android系统中的四大组件之中的一个.服务主要用于两个目的:后台执行和跨进程訪问. 通过启动 一个服务.能够在不显示界面的前提下在后台执行指定的任务,这样能够不影响用 ...

  10. Android面试题1

    1.Android中intent的是? 答:实现界面间的切换,能够包括动作和动作数据.连接四大组件的纽带. 2.SAX解析xml文件的长处的是? 答:不用事先调入整个文档,占用资源少 3.在andro ...