当前位置:优学网  >  在线题库

关于用户浏览器缓存的问题

发表时间:2022-06-21 17:20:58 阅读:232

在一个项目中,我修改了页面上某个元素,自己浏览器使用强制刷新一下,就可以看到效果。

但是用户他的浏览器我是无法操作到的,所以用户只能自动等浏览器缓存过期才能预览??

注意:是 html 文件修改,不是里面的css文件或者js文件修改。

有没有立马让用户看到效果的方法,这个方法不包括去告诉用户使用强刷和 url 中加随机参数。

1、因为我不可能让所有用户都强刷一遍,不现实
2、不想改变页面的请求链接,感觉不美观

🎖️ 优质答案
  • 其实有几种方案都可以,要看你的需求。

    如果只是边 dev 边预览,那你只要把 dev-server 反代(局域网内甚至不需要反代)给其他用户即可。如果是教学、面试类需求,code with me 可以提供参考。其它需求,可以使用 WebSocket 传输数据,然后在前端得到数据后修改页面。

  • image.png
    可以像第12行那样,在JS引入时,后面加上当前时间戳,这样每次进到这个页面,被加载的JS一定是最新的。

    <script>
        document.write('<script src="js/time.js?v='+new Date().getTime()+'"><\/script>');
    </script>

    效果:
    image.png
    image.png

  • 你修改的内容估计被用户浏览器缓存了吧。

    试试对文件加时间戳或者改下文件名的方式。

  • 1、不涉及工程化的项目,在具体文件比如html,js,css文件后添加时间标识例如:

    index.html?v=20220621
    <link rel="stylesheet" href="index.css?v=20220621">
    <script src="index.js?v=20220621" type="text/javascript" charset="utf-8"></script>

    2、工程化的项目构建工具中有自带更新文件的工具
    3、借助第三方平台部署的项目需要管理员手动清除【或者设置定时清除】缓存操作

    已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

  • 没有明白你的需求

    已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

  • 相关问题