V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
helee9199
V2EX  ›  程序员

有没有办法在网页上做一个按钮 达到清理缓存

  •  1
     
  •   helee9199 · 323 天前 · 3831 次点击
    这是一个创建于 323 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我只知道清理缓存,要么装插件,要么进设置里去清 但是有些情况 user 不会。 想问一下, 有没有什么 api 可以清理缓存 做一个按钮,点击以后就能清理。

    36 条回复    2023-05-12 16:44:55 +08:00
    helee9199
        2
    helee9199  
    OP
       323 天前
    @taogen 可以理解为 user 是老年人 不知道这些东西
    现在就想给他一个按钮,点了清缓存。
    wolfie
        3
    wolfie  
       323 天前
    这届用户不行,连缓存都不会清理,导致功能不可用。
    unclemcz
        5
    unclemcz  
       323 天前 via Android
    换个思路,前端禁止缓存,引入静态资源的时候都加随机版本号。
    ovtfkw
        6
    ovtfkw  
       323 天前
    alter 之
    SaltyLeo
        7
    SaltyLeo  
       323 天前
    user 应该知道他需要清除缓存才能继续下一步吧。
    如果是 chrome ,可以在你的页面上设置一个按钮,链接为:chrome://settings/clearBrowserData ,点击后会弹出确认清除浏览数据的页面,点击清除数据即可。
    gongxuanzhang
        8
    gongxuanzhang  
       323 天前   ❤️ 11
    function clearCache(){
    alert('清理缓存成功')
    }
    hua123s
        9
    hua123s  
       323 天前   ❤️ 2
    Al0rid4l
        11
    Al0rid4l  
       323 天前
    清理你自己页面所在域的当然可以, 但如果你想要清整个浏览器的那会跨域, 毕竟不能让你一个按钮就把其他网站购物车都给清了
    helee9199
        12
    helee9199  
    OP
       323 天前
    @unclemcz 屎山+快 20 年的老项目,很多方式不好实现,搞个按钮清缓存最直接了
    @Al0rid4l 这个无所谓,清当前页或全部没差。医院用。

    @oott123 @hua123s 谢谢我看看这个
    knva
        13
    knva  
       323 天前
    alert("清理成功矣")
    bzw875
        14
    bzw875  
       323 天前
    可以给用户开一个安慰剂,酷炫的动画然后弹出清空完成。但是浏览器不允许范围隐私数据
    shyangs
        15
    shyangs  
       323 天前
    什麼鬼安慰劑,樓主肯定遇到了快取和新資料不一致的問題。

    就像之前 V2EX 的翻頁報 502 ,https://www.v2ex.com/t/938867

    不想治本的情況,安慰劑還不如治標方案——清 cookie 和清緩存。
    hsfzxjy
        16
    hsfzxjy  
       323 天前 via Android
    @shyangs 查了下快取,原来是 cache
    opengps
        17
    opengps  
       323 天前
    你自己写个程序,后台定期执行就行了,不用期待什么人为操作
    pipaseqin
        18
    pipaseqin  
       323 天前
    左上角设置一块区域连续点击 n 次,出现清理按钮,点击或多少秒不点击则隐藏
    helee9199
        19
    helee9199  
    OP
       323 天前
    @shyangs 是啊 就这个意思,但是 user 又不会装插件和到设置里去清
    所以我想有什么办法 能达到清理 cookie 和缓存的效果。
    TArysiyehua
        20
    TArysiyehua  
       323 天前
    @helee9199 你自己代码不能主动清空 cookie 和缓存吗?感觉无压力呀
    krixaar
        21
    krixaar  
       323 天前
    流程截图放 word 里搞个手册,一个链接放上去就行了。最后加上 IE 怎么重置浏览器的流程,和其他浏览器卸载重装一句话。
    不会操作?找个会的过来按手册就行了。
    cydian
        22
    cydian  
       323 天前 via Android
    长见识了,第一次看到这个 headers
    qping
        23
    qping  
       323 天前
    为什么你们要清缓存,不能代码层面解决下缓存问题吗?
    helee9199
        24
    helee9199  
    OP
       323 天前
    @qping 有些谜之 bug 发版后 A 机器访问 OK ,B 机器访问有问题,让他们清理缓存试试, 清理以后又好了。。。
    qping
        25
    qping  
       323 天前
    那还是浏览器缓存问题,还是应该在代码层面解决,所有文件都加上版本号
    darkengine
        26
    darkengine  
       323 天前
    老年人知道缓存是什么吗。。。应该加一个按钮叫“一键解决问题” /doge
    cyningxu
        27
    cyningxu  
       323 天前
    看了一下,楼主的意思是清文件 cache 和 cookie ?我理解文件 cache 的话不就是加版本号吗? cookie 的话更简单了,所以这个问题是?
    LavaC
        28
    LavaC  
       323 天前
    遇到过这种情况,给甲方做好了页面,她的电脑访问一直是旧的就以为我们在糊弄她,我们喊了两天 Ctrl+F5 ,也不知道是她没按还是按错了,反正就没刷新到,最后开始开远程帮她按了快捷键。
    paradoxs
        29
    paradoxs  
       323 天前
    有 1 说 1 , 让客户清缓存这个做法绝对是不对的。

    自己加版本号吧
    v135ex
        30
    v135ex  
       323 天前
    @gongxuanzhang 一看你就没写过真的,我刚入行的时候写 APP ,老板让我加个清除缓存,那时候刚毕业我都不知道该缓存啥还清除缓存,我就写了一个类似的,不过加了一个定时器 loading 一秒哈哈
    Ritr
        31
    Ritr  
       322 天前
    alert("清除成功“);
    zhaokun
        32
    zhaokun  
       322 天前 via iPhone
    先搞清楚是什么缓存,如果是前端自己写的缓存那不按钮随便写吗?
    fiveStarLaoliang
        33
    fiveStarLaoliang  
       322 天前
    private clearCache() {
    // 清除所有数据
    fetch('/', { cache: 'no-cache' })
    fetch('/', { cache: 'reload' })
    window.location.reload()
    }
    fiveStarLaoliang
        34
    fiveStarLaoliang  
       322 天前
    刚研究了下,代码没作用,再研究研究
    fiveStarLaoliang
        35
    fiveStarLaoliang  
       322 天前
    我试了下这个办法可以重新加载页面

    private clearCache() {
    // 清除缓存
    if (window.location.href.indexOf('v=') < 0) {
    window.location.href = `/?v=${new Date().getTime()}`
    } else {
    window.location.href = window.location.href.replace(/v=\d+/, 'v=' + new Date().getTime())
    }
    }
    helee9199
        36
    helee9199  
    OP
       322 天前
    @fiveStarLaoliang 这个看起来只针对当前页吧?
    因为实际碰到的情况是 某个功能里功能异常,清理缓存后正常。
    目前的思路是按#9#10 给的那个 header 思路,在每次登录时清理缓存
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2752 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 11:58 · PVG 19:58 · LAX 04:58 · JFK 07:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.