asp.net application
Application 对象用于存储和访问来自任何页面的变量,类似于 session 对象。不同之处在于,所有的用户分享一个 Application 对象,而 session 对象和用户的关系是一一对应的。Application 对象握有会被应用程序中的许多页面使用的信息(比如数据库连接信息)。这意味着可以从任何的页面访问这些信息。同时也意味着你可在一个地点改变这些信息,然后这些改变会自动反映在所有的页面上。而缓存和Application一样是所有用户共享的,但是缓存的生命周期可以根据需要而设定,可以是一秒两秒,也可以是一年两年,前提是这期间应用程序一直在运行,而Application则是存在于应用程序运行期间,当然也可以在程序中干掉它。这两者现在更多的是用缓存。
下面一段简单的MVC代码,用来测试这三者的区别
public class Cache_Session_ApplicationController : Controller
{
public ActionResult Index()
{
return View();
}
public JsonResult SetData(string app,string sess,string cvalue)
{
HttpContext.Application.Lock();
//Application里面的key值是可以重复的
if (null == HttpContext.Application.Get("app"))
HttpContext.Application.Add("app", app);
else
HttpContext.Application.Set("app", app);
HttpContext.Application.UnLock(); Session["sess"] = sess; MemoryCache cache = MemoryCache.Default;
if (null != cache.Get("cache"))
cache.Remove("cache");
CacheItemPolicy policy = new CacheItemPolicy();
policy.AbsoluteExpiration = DateTime.Now.AddDays();
cache.Add("cache", cvalue, policy);
return new JsonResult() { Data = new { status = "OK" } };
}
public JsonResult GetData()
{
var app= HttpContext.Application.Get("app");
var sess = Session["sess"];
var cache = MemoryCache.Default.Get("cache");
return new JsonResult() { Data=new {app=app??"NULL" , sess = sess??"NULL" , cache = cache??"NULL"} };
}
}
<div>
<input type="button" onclick="SetData()" value="设置值" />
<input type="text" placeholder="application的值" id="zApp"/>
<input type="text" placeholder="session的值" id="zSess" />
<input type="text" placeholder="cache的值" id="zCache" /> <input type="button" onclick="GetData()" value="获取值" />
<label>application的值:</label><label id="appL"></label><br />
<label>session的值:</label><label id="sessL"></label><br />
<label>cache的值:</label><label id="cacheL"></label><br /> </div> <script type="text/javascript">
function GetData() {
$.ajax({
url: "/Cache_Session_Application/GetData",
type: "post",
async: true, //或false,是否异步
success: function (data) {
$("#appL").text(data.app);
$("#sessL").text(data.sess);
$("#cacheL").text(data.cache);
},
error: function () { } });
}
function SetData() {
$.ajax({
url: "/Cache_Session_Application/SetData",
type: "post",
async: true, //或false,是否异步
data: { app: $("#zApp").val(), sess: $("#zSess").val(), cvalue: $("#zCache").val()},
success: function (data) {
alert(data.status);
},
error: function () { } });
}
</script>
asp.net application的更多相关文章
- ASP.NET Application Life Cycle
The table in this topic details the steps performed while an XAF ASP.NET application is running. Not ...
- ASP.NET Application and Page Life Cycle
ASP.NET Application Life Cycle Overview for IIS 7.0 https://msdn.microsoft.com/en-us/library/bb47025 ...
- How to increase timeout for your ASP.NET Application ?
How to increase timeout for your ASP.NET Application ? 原文链接:https://www.techcartnow.com/increase-tim ...
- Debug your ASP.NET Application while Hosted on IIS
转摘:http://www.codeproject.com/Articles/37182/Debug-your-ASP-NET-Application-while-Hosted-on-IIS This ...
- ASP.NET Application,Session,Cookie和ViewState等对象用法和区别 (转)
在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等.下面分别介绍它们的用法和区别. 方法 信息量大小 作用域和保 ...
- Custom ASP.NET Application into SharePoint --整合ASP.NET应用程序到SharePoint
转:http://www.devexpertise.com/2009/02/18/integrating-a-custom-aspnet-application-into-sharepoint-par ...
- [转]ASP.net Application 生命周期事件
生命周期事件和 Global.asax 文件 在应用程序的生命周期期间,应用程序会引发可处理的事件并调用可重写的特定方法.若要处理应用程序事件或方法,可以在应用程序根目录中创建一个名为 Global. ...
- php仿照asp实现application缓存的代码分享
php 怎么没有asp 那样的application缓存呢?最近我找了很多,都只有自己写,下面我分享一段代码 class php_cache{ //相对或者绝对目录,末尾不要加 '/' var $ca ...
- Capturing ASP.NET Application Startup Exceptions
It has become common practice to perform tasks during an ASP.NET applications start up process. Thes ...
- asp.net Application、 Session、Cookie、ViewState、Cache、Hidden 的区别
这些对象都是用来保存信息的,包括用户信息,传递值的信息,全局信息等等.他们之间的区别: 1.Application对象 Application用于保存所有用户的公共的数据信息,如果使用Applicat ...
随机推荐
- 虚拟化之KVM的安装续篇
介于上篇文章用的网络的方式安装系统并且磁盘文件格式为raw,不支持快照,所以再写下这篇文章,方便后续查看. 目的:通过nfs安装系统,磁盘文件格式为qcow2(支持快照). 如下操作和上篇文章只有部分 ...
- nginx错误日志级别
在配置nginx.conf 的时候,有一项是指定错误日志的,默认情况下你不指定也没有关系,因为nginx很少有错误日志记录的.但有时出现问题时,是有必要记录一下错误日志的,方便我们排查问题.error ...
- 移动平台前端开发总结(针对iphone,Android等手机)
移动平台前端开发是指针对高端智能手机(如Iphone.Android)做站点适配也就是WebApp,并非是针对普通手机开发Wap 2.0,所以在阅读本篇文章以前,你需要对webkit内核的浏览器有一定 ...
- videojs 视频开发API
videojs就提供了这样一套解决方案,他是一个兼容html5的视频播放工具,早期版本兼容所有浏览器,方法是:提供三个后缀名的视频,并在不支持html5的浏览器下生成一个flash的版本. 最新的3. ...
- (转)Java字符串应用之密码加密与验证
1.通过java.Security.MessageDigest的静态方法getInstance创建具有指定算法名称的信息摘要,参数为算法名,传入”MD5“则表示使用MD5算法 2.Message ...
- 搭建discuz论坛(2)
修改host文件: 使用ab做性能测试: E:\Apache2.2\bin>ab -n1000 -c100 http://bbs.ct.gd/
- SonarQube 项目配置文件
费话不说,直接上代码: 需要注意的地方: 1. 每个项目的key不能重复. 2. 注意编码方式. 3. 注意分模块的写法. 4. 忽略源码文件的写法. # Required metadatasonar ...
- ANCS协议翻译
综述 苹果通知中心(Apple Notification Center Service, ANCS)的目的是提供给蓝牙外设一种简单.方便的获取ios设备通知信息的方式. 依赖 ANCS的使用没有依赖, ...
- Mplayer ARM平台下交叉编译
下载MPlayer http://www.mplayerhq.hu/design7/dload.html 编译环境 系统 : ubuntu 11.04 交叉编译器版本 : Sourcery G++ L ...
- MyBatis 注解
注解 目标 相对应的 XML 描述 @CacheNamespace 类 <cache> 为给定的命名空间 (比如类) 配置缓存. 属性:implemetation,eviction, fl ...