提供使用jquery比较缓存和应用程序中的js文件

问题描述 投票:0回答:1

我的应用程序中有几个js文件。当我更改这些文件中的任何内容时,我必须清除浏览器缓存以查看我的更改。为了避免这种情况,我使用了这个

<script type="text/javascript" src="js/main.js?cacheBust=20"></script>

但这似乎不起作用。 我不想像这样在URL中使用版本控制

<script type="text/javascript" src="js/main.js?v=1.2.3"></script>

问题是,如果我忘记更改版本,浏览器仍然使用旧的js文件。 我只想知道是否有任何简单的方法,将当前浏览器的缓存js文件与应用程序的js文件进行比较。如果有任何更改,则加载新文件,否则使用旧文件。

我正在使用jquery和bootstrap开发ASP.net应用程序。我的应用程序中没有服务器端代码。所以如果有人能在客户端建议任何解决方案,我将不胜感激。谢谢你的帮助!

javascript jquery caching browser-cache
1个回答
0
投票

Disable cache for developing

客户端

在Chrome中打开'networ'k选项卡上的开发人员工具(f12),从工具栏中选中'禁用缓存'。请注意,只要开发人员工具处于打开状态,这将只是一个有效状态。现在重新加载页面并注意页面加载没有缓存。

enter image description here在Firefox中,打开开发人员工具,单击设置cog,转到'高级设置'并选中'禁用HTTP缓存'。 (与我认为的镀铬相同的通知)

服务器端

根据哪种服务器设置,您可以设置包含各种选项的标头,例如到期日期和在浏览器获得新版本时告诉浏览器的事项。

node.jsdocs中它声明有以下选项:if-modified-since,if-unmodified-since,last-modified

nginx - proxy_cache_revalidate指示NGINX在从源服务器刷新内容时使用条件GET请求。如果客户端请求缓存但是由缓存控制头定义的过期项,则NGINX在其发送到源服务器的GET请求的头中包含If-Modified-Since字段。这样可以节省带宽,因为服务器只有在NGINX最初缓存它时,自从文件附加到Last-Modified标头中的时间开始修改后才发送完整项目。

appache如果响应的状态为200(OK),则响应还必须包括“Etag”,“Last-Modified”或“Expires”标题中的至少一个,或者max-age或s-maxage指令。 “Cache-Control:”标头,除非已经使用了CacheIgnoreNoLastMod指令。

© www.soinside.com 2019 - 2024. All rights reserved.