您将如何从 jQuery ajax 调用访问缓存?
我正在使用 jquery 进行一些数据验证和快速数据访问。我有一个静态网络方法,jquery 通过 json 调用它来返回一个值。我不想每次都调用数据库,所以我想缓存我正在访问的数据,但我无法确定如何从 javascript 或静态方法中调用 asp.net 缓存。
我想将页面对象发送到静态方法,这将允许我访问 page.cache,但不知道如何。除此之外,也许是一种从 javascript 本身访问缓存的方法?
System.Web.HttpContext.Current.Cache
每个应用程序域共享缓存 - 而不是每个页面。Page 只是有一个方便的 Page.Cache 属性来获取当前的 Cache,这意味着您可以只从页面中的方法执行 Cache["key"] 。
正如您所注意到的,如果您使用的是静态方法 - 那么您就没有 Page 实例,也没有 Page.Cache 属性。因此,您需要使用HttpContext.Cache。但是,等等 - 你也没有 HttpContext 实例!没关系,当前执行的实例存储在HttpContext.Current的静态属性中。
所以 - 回答你的问题 - 在静态方法中,使用 HttpContext.Current.Cache。顺便说一句,您还可以从那里访问请求和响应属性。
如果你真的想这样做,我认为调用 PageMethod 可能是你能做的最好的事情:
http://encosia.com/2008/05/29/using-jquery-to-directly-call-aspnet-ajax-page-methods/
Javascript 是客户端,缓存在服务器端,因此您需要对 asp.net 应用程序中的一个方法进行回调,该方法返回缓存的内容。
ASP.NET Cache API 真的很不错,你可以使用 Cache["Key"] 来获取你喜欢的缓存内容。在这里阅读更多:http: //msdn.microsoft.com/en-us/library/ms972379.aspx