今天你好,我花了半天的时间试图弄清楚为什么我的网站发疯了,我终于弄明白了,现在我想知道我能做些什么来防止这种情况。 这是发生了什么: 我有一个简单的JS文件
function standardAlert( )
{
grid1.save()
window.alert( "The information has been saved!" )
}
今天我在网站上做了一些更改,我还添加了另一个名称不同的函数,显示了不同的window.alert
从那一刻起,我每次点击我的保存按钮时都会在错误日志中出现此错误:
"无效的回发或回调参数。使用配置或<%@ Page EnableEventValidation =" true"启用事件验证。 %GT;在页面...."
我一直在疯狂..检查旧备份来回改变我今天所做的更改。 几分钟前,我终于找到了问题所在。 浏览器保存了旧的函数名称,每次我点击保存按钮时,有一个onclientclick事件与旧函数名称相关,我得到了这个错误。当然,我也提升了JS文件的不同版本,但它对浏览器来说无关紧要!
所以我的问题是如何在将来阻止这类事情? P.S我也有这样的照片没有显示,因为浏览器使用了他本地存储中的旧1。
忘了提到我通过清除我的眉毛缓存来解决这个问题!但是当ppl将使用该网站将来会发生什么,也许我将不得不再次更改JS函数名称?或者是一张照片? 我不想对ppl说他们需要清除缓存作为解决方案。我相信有一些我不知道的东西,我还是很新的。
我正在使用MS sql server 2000
答案 0 :(得分:1)
当您更改服务器上的文件时,您需要服务器在请求时将此文件的新版本发送给客户端(浏览器)。
这可以通过多种方式实现 - 在大多数情况下,最好的方法是设置服务器来处理已更改的文件(即比较时间戳并确定何时适合发送新版本的文件而不是而不是告诉客户他们有最新的版本)。但这取决于您的服务器环境(您在问题中没有描述)。
然而,通常只有通过在客户端更改内容才能实现此目的。请求文件时,以一种将被服务器忽略的方式向其附加唯一的字符串。这样,客户端就不可能认为它已经拥有了它所请求的文件的最新版本。所以不要得到,例如:
你会得到
http://example.com/myfile.js?_t=1234567
例如,最后的数字可以是Date.now()转换为字符串。
然而,这将有效地阻止myfile.js的任何缓存,并且会对您的带宽使用产生影响。因此,如果可能的话,将其修复在服务器上 - 如何操作取决于您使用的服务器。