更新javascript/jquery代码时清除浏览器网站数据



我正在构建一个 asp.net 网站(使用HTML,C#,Jquery..(。
然后。网站已发布。
然后。我在javascript代码文件中有一些错误需要修复。
我修复了它并重新发布了网站。
但是,浏览器保存缓存或其他浏览数据,并且用户没有得到固定版本。
那么,当我更改一些代码或修复 js 文件中的小错误时,如何手动清除用户的浏览数据或缓存(通过 javascript、jquery 或 C#(?我不能和用户说,所以"你必须清除浏览数据才能获得新版本!
谢谢。

这可能不会直接回答您的问题,但是如果您使用任何捆绑器(如 webpack(或任务运行器(如 gulp(,您实际上可以使用哈希键生成文件。

例如,捆绑器将生成JS文件的生产版本,作为

myFile.d587bbd6e38337f5accd.js

d587bbd6e38337f5accd是由捆绑器生成的哈希键,它将由捆绑器本身注入。在这种情况下,每个版本都会有一个带有修改哈希键的 js 文件。所以它不会从缓存加载

您可以查看此链接以了解它

在javascript的情况下,使用cacheBustingUrl,其格式如下,附加到Date.Now((中,这将解决缓存问题。

   <script>
         var scriptUrl = "/site/js/script.js",
         cacheBustingUrl = scriptUrl + "?" + Date.now(),
         newScriptElement = document.createElement("script");
         newScriptElement.setAttribute("src",cacheBustingUrl);
         document.body.appendChild(newScriptElement);
    </script>

这应该附加一个新的脚本元素,例如

 <script src="/site/js/script.js?1404918388711"></script>

到页面末尾,浏览器将像任何其他脚本标记一样加载。

您可以尝试使用window.location.reload(true(在页面上设置刷新,理论上这将忽略所有缓存的文件并向用户检索您网站的新副本。

也许创建检查,如果页面不是最新的,则会刷新页面。

没有浏览器可以允许您删除其缓存。

<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'> 

此外,您必须通过以下方式关闭自动完成文本框

formname.setAttribute( "autocomplete", "off" );