浏览器保存了我的JavaScript函数名称并错误了我的网站

the browser saved my javascript function name and buged my site

本文关键字:我的 错误 网站 函数 保存 JavaScript 浏览器      更新时间:2023-09-26

大家好,今天我花了半天时间试图弄清楚为什么我的网站发疯了,我最终设法弄清楚了,现在我想知道我能做些什么来防止将来发生这种情况。这是发生的事情:我有一个简单的JS文件

function standardAlert(  ) 
     {
     grid1.save()
     window.alert( "The information has been saved!" )
 }

现在今天我一直在网站上做一些更改,我还添加了另一个具有不同名称的功能,该函数显示不同的窗口。

从那一刻起,每次我单击保存按钮时,我的错误日志上都有此错误:

"无效的回发或回调参数。在配置中使用或<%@ 页面启用事件验证="true" %> 在页面中启用事件验证..."

我一直疯了..检查旧备份来回更改我今天所做的更改。 最终几分钟前,我终于发现了问题所在。浏览器保存了旧的函数名称,每次我单击保存按钮时,该按钮都有一个与旧函数名称关联的onclientclick事件,我都会收到此错误。当然,我也更新了JS文件的不同版本,但这对浏览器来说无关紧要!

所以我的问题是我将来如何防止这样的事情发生?附言我也有这个图片没有显示,因为浏览器使用了他本地存储中的旧 1。

忘了说我通过清除我的眉毛缓存解决了这个问题! 但是将来当 PPL 使用该站点时会发生什么,也许我将不得不再次更改 JS 函数名称? 或者也许是一张照片?我不想对 ppl 说他们需要清除缓存作为解决方案。我确信我缺少一些东西,我只是对此还很陌生。

我正在使用MS sql服务器2000

当您更改服务器上的文件时,您需要服务器在客户端(浏览器)请求时将此文件的新版本发送给客户端(浏览器)。

这可以通过多种方式实现 - 在大多数情况下,最好的方式是设置服务器来处理更改的文件(即比较时间戳并决定何时适合发送文件的新版本,而不是告诉客户端他们拥有最新版本)。但这确实取决于您的服务器环境(您在问题中尚未描述)。

但是,通常有一种方法可以通过仅在客户端更改内容来实现此目的。请求文件时,以服务器将忽略的方式向其附加唯一字符串。这样,客户端就不可能认为它已经拥有它所请求的文件的最新版本。因此,例如,而不是获得:

http://example.com/myfile.js

你会得到

http://example.com/myfile.js?_t=1234567

例如,末尾的数字可以是 Date.now() 转换为字符串。

但是,这将有效地停止myfile.js的任何缓存,并会影响您的带宽使用。因此,如果可能的话,将其修复在服务器上 - 如何做到这一点取决于您使用的服务器。