javascript的缓存问题
我有这个javascript代码来检测页面上的字段更改。它在IE中运行良好,但不幸的是在chrome中没有。我真的不知道为什么会这样。当我试图通过不同的浏览器和设备访问它时。此javascript工作不正常。我需要清除缓存历史记录以使其正常工作。代码如下:javascript的缓存问题,javascript,caching,cross-browser,Javascript,Caching,Cross Browser,我有这个javascript代码来检测页面上的字段更改。它在IE中运行良好,但不幸的是在chrome中没有。我真的不知道为什么会这样。当我试图通过不同的浏览器和设备访问它时。此javascript工作不正常。我需要清除缓存历史记录以使其正常工作。代码如下: var ctr = 1; var isFirstLoad = true; function propertyChangedByCode() { ctr = 0; propertyChange
var ctr = 1;
var isFirstLoad = true;
function propertyChangedByCode() {
ctr = 0;
propertyChanged();
}
function propertyChanged() {
if (document.readyState == "complete") {
$('[id$=SaveButton]').removeAttr("disabled");
$('[id$=SaveButton]').removeAttr("class");
$('[id$=SaveButton]').addClass("btn btn-primary");
warnMessage = 'Warning: You have unsaved changes.';
console.log(ctr);
window.onbeforeunload = function () {
if (ctr == 0) {
return warnMessage
}
else if (ctr == 1) {
ctr = 0;
}
}
}
}
$("body").click(function (event) {
console.log(event.target);
if (event.target.type == "submit" && event.target.value != "Save" && event.target.value != "Cancel" && event.target.value != "Next") {
ctr = 0;
propertyChanged();
console.log("BODY clicked");
}
});
function pageLoad() {
jQuery("input.datepicker").dp({
dateFormat: 'M d, yy',
altFormat: 'yy-mm-dd',
buttonText: '<i class="icon icon-calendar"></i>',
showOn: 'both'
});
$("button.ui-datepicker-trigger").addClass('btn right');
console.log("PageOnLoad: " + ctr);
var warnMessage = 'Warning: You have unsaved changes.';
$('input[type="text"],select,textarea').each(function (k, v) {
var elem = $(this);
// Save current value of element
elem.data('oldVal', elem.val());
// Look for changes in the value
elem.bind("change keyup input paste", function (event) {
ctr = 0;
// If value has changed...
if (elem.data('oldVal') != elem.val()) {
propertyChanged();
}
});
});
$('.btn').click(function (e) {
console.log("whatever");
ctr = 1;
});
//ui-datepicker-trigger
$('.ui-datepicker-trigger').click(function (e) {
console.log("date");
ctr = 0;
});
if (isFirstLoad) {
window.onbeforeunload = null;
$('[id$=SaveButton]').attr("disabled", "disabled")
console.log("Disable");
isFirstLoad = false;
}
根据我的研究,这三行代码将在我的应用程序中禁用缓存。尝试清除我的缓存,在我的字段中输入一些值,点击保存,然后再次浏览到该页面,但字段仍在自动填充中显示我以前的输入。所以我假设禁用缓存不会起作用。你知道为什么禁用缓存不起作用吗?你对浏览缓存有什么建议吗?为什么您认为我遇到了需要清除缓存才能使javascript正常工作的问题?最后,为什么它在我的IE上工作,而不是在chrome上?谢谢抱歉问了这么多问题 这个问题是不是在问为什么你用Chrome自动填充而不是IE?不,我有四个问题。但你刚才所说的部分是其中之一。为了防止自动填充浏览器,需要在设置中进行更改。我假设你在IE中禁用了自动填充,而在Chrome中没有,这就是为什么你在Chrome中得到了自动填充变量,而在IE中没有。这是假设我理解你的要求。我将这个场景与缓存联系起来。请阅读我的全部帖子,以便更好地理解我的问题。
Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache)
Response.Cache.SetNoStore()
Response.Cache.SetAllowResponseInBrowserHistory(True)