当前位置: 首页 > 面试题库 >

防止浏览器缓存JavaScript文件的更好方法

张翰音
2023-03-14
问题内容

这就是我们防止浏览器缓存JS和CSS文件的方式。这似乎有点hacky ..有更好的方法吗?

<%
//JSP code
long ts = (new Date()).getTime(); //Used to prevent JS/CSS caching
%>

<link rel="stylesheet" type="text/css" media="screen" href="/css/management.css?<%=ts %>" />
<script type="text/javascript" src="/js/pm.init.js?<%=ts %>"></script> 
<script type="text/javascript" src="/js/pm.util.func.js?<%=ts %>"></script>

更新:我们要防止缓存的原因是为了确保在执行新发行版时加载较新版本的文件。


问题答案:

您希望缓存CSS和JS。当它们回来时,它加快了网页的加载。添加时间戳后,您的用户将不得不一次又一次下载它。

如果要确保它们始终具有新版本,则要使构建系统在文件末尾添加一个构建号而不是时间戳。

如果您只是在开发中遇到问题,请确保将浏览器设置为不缓存文件,或者将开发页面上的标头设置为不缓存。



 类似资料:
  • 问题内容: 所以我正在做这个小项目,但是在捕捉方面有些麻烦。不能正常工作的一件事是,浏览器一直在缓存包含保存数据的json文件,当我在其他地方更新json时,浏览器会返回到已缓存的json文件的旧版本并读取该旧版本。不幸的是我不想要那个。我根本不希望浏览器完全缓存文件,以便每次加载页面时,它将向服务器请求json文件并根据该文件而不是已缓存的任何文件进行操作。但是,我希望能够缓存页面上的所有其他内

  • 问题内容: 我目前使用service / $ resource进行ajax调用(在这种情况下为GET),并且IE缓存了这些调用,因此无法从服务器检索新数据。我使用了一种通过谷歌搜索发现的技术来创建一个随机数并将其附加到请求中,以便IE不会去缓存数据。 有没有比将cacheKill添加到每个请求更好的方法? 工厂代码 来自控制器的呼叫 问题答案: 根据binarygiant的要求,我将我的评论作为答

  • 我的项目是这样组织的: 在我的calculate.js文件中,我对数据库进行了一个ajax调用,并且我检索了一些值以显示在statistics.html中的表中,但问题是,一旦计算出这些值,这些值就会被缓存,当我再次调用calculate.js以获取其他数据时,第一次显示的信息也是相同的。 但他们还在。我怎么解决这个? 编辑: 这是我的rest控制器:@RequestMapping(value=“

  • 问题内容: 如何防止浏览器缓存Ajax结果?我有事件触发的Ajax脚本,仅在清除浏览器数据后才显示结果。 在IE6和Firefox 3.0.10中测试 问题答案: 将随机查询字符串添加到您要发送的URL。 例如,如果将Ajax请求发送到“ http://www.xyz.com/a ”,则在末尾添加一个随机字符串:“ http://www.xyz.com/a?q=39058459ieutm39 ”

  • 问题内容: 我有一个运行在云服务器中的php站点。每当我添加新文件css,js或图像时,浏览器就会加载存储在缓存中的相同的旧js,css和图像文件。 我的网站具有doctype和meta标签,如下所示 由于上述doctype和元代码,我加载了浏览器中缓存的相同文件,而不是新文件 问题答案: 尝试这个

  • 问题内容: 好像我使用加载动态内容,结果缓存在浏览器中。 在QueryString中添加一些随机字符串似乎可以解决此问题(我使用),但这听起来像是一种hack。 还有其他方法可以做到这一点吗?或者,如果唯一字符串是实现此目标的唯一方法,则除之外还有其他建议吗? 问题答案: 我使用,这将避免冲突,除非您在同一毫秒内发生多个请求: 编辑: 这个答案已经好几年了。它仍然有效(因此我没有删除它),但是 现