【发布时间】:2017-08-22 10:27:07
【问题描述】:
我想这个问题的答案与缓存相关,但为了更好地理解我认为我至少会问的原因。
在我的 MVC 项目中,我正在向控制器发出 AJAX 请求以将 html 页面作为部分视图返回,然后我将该 html 注入到页面中。原因是视图的模型会根据点击的内容而变化。
这里是 AJAX:(请注意,为简单起见,所有代码都已修改)
$.ajax({
type: 'GET',
url: "../../Home/NewMembershipAlloc/",
contentType: 'application/json',
dataType: 'html',
success: function (data) {
$('#partial_div').html(data);
}
});
这里是控制器方法:
public async Task<ActionResult> NewMembershipAlloc()
{
return PartialView("~/Views/Popup/GenericPopup.cshtml", new Membership());
}
现在,为了清楚起见,这一切都按预期工作。几乎每次我运行这段代码都需要 20 毫秒,如下所示:
但是,如果我以任何方式编辑我的 html 页面,即使我只是删除一个字符然后将其重新添加。下次执行请求时,它将需要 2 秒(ish )。
所以这发生在我的开发环境中,这应该是我的 html 被编辑的唯一地方。当我刷新页面、清除缓存或打开新浏览器时,不会发生。所以我的问题如下:
- 发生这种情况的全部原因是什么?
- 我可以阻止它第一次变慢吗?还是我为加载新的 html 付出的代价?
- 这种延迟会在发布后发生吗?例如,如果有人几天不使用该网页并关闭了他们的机器。
【问题讨论】:
标签: ajax asp.net-mvc view controller