asp.net-mvc – ASP.NET MVC缓存如何为AJAX请求工作?
|
我刚刚开始研究缓存以提高性能,并对缓存 AJAX调用提出疑问. 我有一个动作,用于查询twitter,然后返回结果.在用户按下按钮的时刻,它加载旋转的gif,同时进入动作以进行查询,然后返回局部视图.然后jQuery使用视图中的HTML响应更新div.通常这需要大约5秒.然后他们有一个更多的按钮,以获得更多的结果. 如果我将CachingAttribute放在此操作上会发生什么?我知道我可以尝试但我只是想解释事情的技术方面. 谢谢 这是我的Javascript: $('#blogEntryList #moreLink').live("click",function() {
$('#morespan').toggle();
$('#loader').toggle();
$.get($(this).attr("href"),function(response) {
$('#blogEntryList ol').append($("ol",response).html());
$('#blogEntryList #moreLink').replaceWith($("#moreLink",response));
$('#loader').hide();
$('#morespan').show();
});
return false;
});
这是我修改过的动作: [OutputCache(
Location = OutputCacheLocation.Server,Duration = 100,VaryByParam = "")]
public ActionResult BlogPosts(int? entryCount)
{
if (!entryCount.HasValue)
entryCount = defaultEntryCount;
int page = entryCount.Value / defaultEntryCount;
IEnumerable<BlogData> pagedEntries = GetLatestEntries(page,defaultEntryCount);
if (entryCount < totalItems)
AddMoreUrlToViewData(entryCount.Value);
return View("BlogEntries",pagedEntries);
}
解决方法以下是它的工作原理:假设在服务器端没有指定缓存,默认情况下,GET请求将由浏览器缓存,POST请求不缓存,除非您在发送允许覆盖客户端缓存的AJAX请求时指定cache:true属性战略.现在在服务器端,您可以使用 让我们通过一个例子来说明这一点: [OutputCache(
Location = OutputCacheLocation.Server,Duration = 10,VaryByParam = "")]
public ActionResult Hello()
{
return Content(DateTime.Now.ToLongTimeString(),"text/plain");
}
在客户端: $.ajax({
url: '/home/hello',type: 'post',success: function (result) {
alert(result);
}
});
此控制器操作的结果将缓存在服务器上10秒钟.这意味着服务器将在每个请求中被命中,但如果存在缓存版本,则不会执行该操作,并且将直接从此缓存提供服务.在第一个请求达到控制器操作的10秒后,缓存将过期并重复相同的过程. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-core – 从与xproj相同的解决方案引用csproj
- asp.net – 如何使用HTML5电子邮件输入类型与服务器端.NET
- asp.net-mvc – 以Razor语法为Telerik MVC Grid定义一个Tem
- asp.net – 缓存特定的Javascript和CSS文件
- asp.net-mvc-3 – 任何好的样品开始使用Dapper?
- ASP.net Substitution 页面缓存而部分不缓存的实现方法
- asp.net-mvc – 神秘的ASP.NET MVC Action高延迟问题?
- asp.net-mvc – 疑难解答反伪造令牌问题
- 如何模拟我的ASP.NET应用程序的HTTP 500错误?
- 迁移经典ASP – Webforms或ASP.NET MVC?
- asp.net – 为什么我不能使用NuGet删除包?
- asp.net-mvc – 在MVC中,什么是ViewModel?
- asp.net – 使用NLog记录当前页面的URL
- asp.net-mvc – 我可以传递一个匿名类型到我的AS
- ASP.NET MVC 4全局授权过滤器强制在AllowAnonymo
- asp.net-mvc-3 – R#6 – 在剃刀视图中建议“使用
- 使用Openiddict的ASP.NET Core 1.0 OAuth服务器
- asp.net – System.Web.Security.FormsAuthentic
- asp.net-mvc – 404 Asp.Net中的Http错误处理程序
- asp.net-mvc – ASP.NET MVC – Cascading Drop
