我正在为我正在开发的项目开发新功能,用户可以一次添加一个或多个条目。步骤如下:
到目前为止这一切都有效,但是存在问题。当你多次运行时,包含所有年度报告的div都会出错,我的意思是在第一次之后永远不会刷新,或者使用之前的数据。它不会刷新。我已经在我的ajax调用上关闭了缓存,删除了警报,删除了setTimeout实例,删除了div并将其添加回来等等。这似乎都没有刷新div。
但是,如果我打开IE Developer Tools,它就可以了。我读到IE因使用缓存而臭名昭着,有时这很好,但在这种情况下它不是。
有没有办法关闭缓存并强制div重新加载?
以下是我的代码。
AddARPartialView.cshtml:
$(document).ready(function () {
$("#btnAdd").click(function (e) {
//Stop system from proceeding to server immediately
e.preventDefault();
//Used for checking Completion
var success = false;
//Show spinner while system processes page
//ShowProgress();
//Check to see if there was any validation errors
ShowValidationErrors();
//There was an error, so do nothing
if (hasError) {
//hideprogessbar();
return false;
}
//Save Message
$.ajax({
type: "POST",
cache: "false",
url: "/PM/AddARPartialView",
dataType: "json",
data: $('form').serialize(),
success: function (result) {
if (result.success) {
//Mark Success as true
success = true;
//Hide the Progress bar and show the success message
//hideprogessbar();
}
else {
//Mark Success as false
success = false;
//hideprogessbar();
var DetailError = 'Error while creating new Annual Reports. Please contact administrator with below details.'
+ '\n' + '\n' + result.Error;
$("#lblError").show();
$("#lblError").text(DetailError);
}
},
error: function (xhtr, e, e2) {
alert(e + '\n' + xhtr.responseText, 'error', '');
},
complete: function () {
if (success)
{
CloseARModal();
UpdateAnnualReports();
}
}
});
});
});
常规页面:
function CloseARModal() {
var arWindow = $("#AnnualReport").data("tWindow");
arWindow.close();
}
function UpdateAnnualReports() {
//Show spinner while system processes page
//ShowProgress();
$.ajax({
type: "GET",
cache: "false",
url: "/PM/ARPartialView",
success: function (result) {
$("#divARe").html(result);
},
error: function (xhtr, e, e2) {
if (xhtr.status === 401)
alert("Session Timeout or Unauthorized to access this webpage");
else
alert(e + '\n' + xhtr.responseText);
}
});
//hideprogessbar();
//alert("New Annual Report(s) added successfully!");
}
答案 0 :(得分:0)
所以我的脸肯定是红色的尴尬。我想出了这个问题。如果你检查Ajax调用,你会注意到缓存,我把它设置为“false”。它不应该在它周围引用,而只是变得虚假。
我在别人的Ajax电话中注意到了这一点并在我的网站上尝试过。果然,缓存问题立即消失了,哈哈......
令人愤怒的是,经过几天的研究,试验和错误尝试,只是把我的头撞在桌子上浪费了,因为我从前一个承包商那里得到了一个坏榜样。我应该永远记住,如果它看起来很奇怪,请提出质疑,哈哈。