HttpContext.Cache属性

HttpContext基于HttpApplication的处理管道,由于HttpContext对象贯穿整个处理过程,所以,可以从HttpApplication处理管道的前端将状态数据传递到管道的后端,完成状态的传递任务做个小demo

1.控制器:

  public class TestController : Controller
    {

        string key = "data";

        public ActionResult Index()
        {
            return View();
        }

        /// <summary>
        /// 定时器获取缓存数据
        /// </summary>
        /// <returns></returns>
        [HttpPost]

        public JsonResult GetData()
        {
            string data = Convert.ToString(HttpContext.Cache.Get(this.key));
           if (!string.IsNullOrEmpty(data))
           {
               return this.Json(new { success = true, data = data });
           }
           else
           {
               return this.Json(new { success = false, time = DateTime.Now.ToString("ss"), data = data });
           }
        }

        /// <summary>
        /// 打开输入缓存值界面
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public ActionResult CreateCacheData()
        {
            return View();
        }

        /// <summary>
        /// 将数据插入缓存
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        [HttpPost]
        public void InsertCache(string value)
        {
            HttpContext.Cache.Insert(this.key, value);        

        }

    }

2.视图

Index.cshtml:

@{
    ViewBag.Title = "Index";
    Layout = null;

}
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<script src="~/Scripts/jquery.timers-1.2.js"></script>

<button id="btnStart">开始定时器</button>
<script>
    $(function ()
    {
        //定时器开始
        $("#btnStart").bind("click", function () {
            $("body").everyTime("3s", "timer", function () {
                $.ajax(
                    {
                        type: ‘post‘,
                        url: ‘/Test/GetData‘,
                        success: function (r) {
                            if (r.success) {
                                console.log("获取到数据,json字符串为" + JSON.stringify(r.data));
                            }
                            else {
                                console.log("(" +r.time + ")秒没有获取到数据");
                            }
                        }

                    });
            })
        });

    })
</script>
jquery.timers-1.2.js 是定时器jquery插件定时器插件下载

CreateCacheData.cshtml:

@{
    ViewBag.Title = "CreateCacheData";
}
<script src="~/Scripts/jquery-1.8.2.min.js"></script>
<input id="txtData"/>
<button id="btnSave" >
    插入服务器缓存
</button>

<script>
    $(function () {
        $("#btnSave").click(function ()
        {
            var getDataValue = $("#txtData").val();
            $.post("/Test/InsertCache", {value:getDataValue}, function () {
                alert("缓存插入成功");
            });
        })
    });
</script>

3.效果

时间: 2024-12-23 19:05:41

HttpContext.Cache属性的相关文章

第十七篇:使用窗口的cache属性加速SOUI的渲染

内容渲染速度是决定一个UI成败的关键.无论UI做得多华丽,没有速度都没有意义. 在MFC,WTL等开发框架下,每个控件都是一个窗口,窗口只需要画前景,背景.因为窗口之间的内容不需要做混合,一个子窗口的一次刷新只涉及该窗口本身,和其它窗口无关,因此这样效率很高.但是美中不足在于,窗口之间内容是孤立的,要想不同窗口之间的内容更协调,对美术有很高的要求,同时也基本只能适应个别窗口大小相对固定的场景. 要使UI更加漂亮,最简单有效的方法就是采用alpha混合的方式将各层的窗口相互混合,这样窗口之间没有了

缓存 HttpContext.Current.Cache和HttpRuntime.Cache的区别

先看MSDN上的解释:HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象.HttpRuntime.Cache:获取当前应用程序的Cache. 我们再用.NET Reflector工具看看HttpContext.Cache和HttpRuntime.Cache的实现://HttpContext.Cache和HttpRuntime.Cache实现    //System.Web.HttpContext.Cache属性实现    public sealed cl

Cache及(HttpRuntime.Cache与HttpContext.Current.Cache)

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/avon520/archive/2009/11/25/4872704.aspx .NET中Cache有两种调用方式:HttpContext.Current.Cache 和 HttpRuntime.Cache,这两种方式有什么区别呢?我们先看MSDN上的解释:      HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象.      HttpRuntime.Cache:获取当前

HttpContext.Current.Cache和HttpRuntime.Cache的区别,以及System.Runtime.Caching

先看MSDN上的解释:      HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象.      HttpRuntime.Cache:获取当前应用程序的Cache.       我们再用.NET Reflector工具看看HttpContext.Cache和HttpRuntime.Cache的实现: HttpContext.Cache和HttpRuntime.Cache实现    //System.Web.HttpContext.Cache属性实现   

HttpContext.Current.Cache 和HttpRuntime.Cache的区别

先看MSDN上的解释:      HttpContext.Current.Cache:为当前 HTTP 请求获取Cache对象.      HttpRuntime.Cache:获取当前应用程序的Cache.       我们再用.NET Reflector工具看看HttpContext.Cache和HttpRuntime.Cache的实现: HttpContext.Cache和HttpRuntime.Cache实现    //System.Web.HttpContext.Cache属性实现   

Asp.net中的Cache--HttpRuntim.Cache 和 HttpContext.Current.Cache

在ASP.NET中有两个类都提供缓存支持, 一个是HttpRuntime类的Cache属性, 另一个是HttpContext类的Cache属性. 通过查看这两个属性的类型可以发现其实这两个属性都是System.Web.Caching.Cache类的实例.那为什么需要同时提供两种支持呢? 查询MSDN后发先,这两个缓存的应用的场景不一样, HttpRuntime.Cache是应用程序级别的缓存, HttpContext.Current.Cache是针对Web上下文定义的, 是一个局部的缓存.(这段

HttpContext请求上下文对象

一.HttpContext概述 HttpContext基于HttpApplication的处理管道,由于HttpContext对象贯穿整个处理过程,所以,可以从HttpApplication处理管道的前端将状态数据传递到管道的后端,完成状态的传递任务. HttpContext的生命周期从服务器接收的HTTP请求开始到反应发送回客户端结束. 在WebForm或类库(包括MVC)项目中,通过Current静态属性,就能够获得HttpContext的对象. HttpContext context =

细说 ASP.NET Cache 及其高级用法

许多做过程序性能优化的人,或者关注过程程序性能的人,应该都使用过各类缓存技术. 而我今天所说的Cache是专指ASP.NET的Cache,我们可以使用HttpRuntime.Cache访问到的那个Cache,而不是其它的缓存技术. 以前我在[我心目中的Asp.net核心对象] 这篇博客中简单地提过它,今天我打算为它写篇专题博客,专门来谈谈它,因为它实在是太重要了.在这篇博客中, 我不仅要介绍它的一些常见用法,还将介绍它的一些高级用法. 在上篇博客[在.net中读写config文件的各种方法] 的

System.Web.Caching.Cache类 缓存 各种缓存依赖

System.Web.Caching.Cache类 缓存 各种缓存依赖 Cache类,是一个用于缓存常用信息的类.HttpRuntime.Cache以及HttpContext.Current.Cache都是该类的实例. 一.属性 属性 说明 Count 获取存储在缓存中的项数. EffectivePercentagePhysicalMemoryLimit 获取在 ASP.NET 开始从缓存中移除项之前应用程序可使用的物理内存百分比. EffectivePrivateBytesLimit 获取可用