zoukankan      html  css  js  c++  java
  • 怎样获取最新版的javascript文件,解决被浏览器缓存的问题

    转载自:https://www.cnblogs.com/mafengzi/p/10464910.html

    假设有一个js文件(以jquery为例),在服务器上的URL地址为:../js/jquery.js 。

    当某天jquery版本更新了,用最新版的jquery文件覆盖了原来旧版的jquery文件。

    这时,在打开引用了此js文件的网页时,有可能引用的还是旧版,这是因为浏览器有缓存,它缓存了旧版的jquery文件。

    浏览器缓存文件是以完整的URL来缓存的,也就是说,当浏览器遇到一个与之前完全一致的URL请求时,就有可能使用之前缓存下来的文件,而不是向服务器去请求文件。当然,缓存是有时效的,超过了一定的时间后,缓存将会消失。

    既然是以完整的URL来缓存文件的,那么我们就可以使用不同的文件名来访问更新后的文件。

    一种解决方法是,将版本号写在文件名里,比如,可将以上的jquery.js的文件名改为 jquery-3.3.0.js,其中,3.3.0就是jquery的版本号。在前端引用时,就这样写:

    <script src="../js/jquery-3.3.0.js"></script>

    当某天jquery的版本更新为3.3.1了,我们就将文件名修改为jquery-3.3.1。前端引用的代号同时修改为:

    <script src="../js/jquery-3.3.1.js"></script>

    另一种解决方法是,不修改文件名,而是将版本号放在URL的query参数里,比如这样写:

    <script src="../js/jquery.js?ver=3.3.0"></script>

    其中ver=3.3.0就是版本号。当jquery的版本号更新为3.3.1之后,就改写为这样:

    <script src="../js/jquery.js?ver=3.3.1"></script>
  • 相关阅读:
    在vue项目中使用element-ui的Upload上传组件
    express使用ejs模板引擎渲染html文件
    nodejs服务端实现post请求
    anroid学习笔记(1)
    水平遍历和嵌套递归
    写代码的风格
    简易版本vue的实现和注解
    JavaScript下的new操作符做了什么?
    node下的跨域传递cookie
    用node研究axios前后端交互状态码规则
  • 原文地址:https://www.cnblogs.com/html5study-1/p/11962171.html
Copyright © 2011-2022 走看看