Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

前端的「缓存问题」也是个大问题

  好像前端问题总有一个通用的解决办法,就像 Windows 的重启电脑一样。每当别人遇到问题问题时,抛出一句清缓存很多时候就能解决问题。但是开发成一个需要清缓存、清 Cookie 才能正常工作的程序真的没问题么?一般用户根本就不懂清缓存之类的操作怎么办?
  之前我也喷过前端脏数据的问题,现在要说的同样是这个问题。之说以扯这个是因为最近老是看到测试人员在测试时遇到问题,开发人员只是淡淡地丢出一句「清缓存」,虽然问题确实是解决了,但是这样的程序上线后可能会有坑!
  缓存问题也是问题,我们同样应该想办法解决。即便是测试过程中的脏版本带来的脏缓存也应该要有解决方案。因为这些不可控的脏缓存问题一旦到了客户端,后果将会非常严重。
  其实我在考虑是否应该在页面上放一个「自动修复」之类的按钮。比如 QQ 空间右上角的那玩意儿就很不错。如果用户遇到问题打电话咨询可以,客服也可以告诉用于一键解决的方式,不必再让客服教用户如何清浏览器缓存。可能有些奇奇怪怪的浏览器我都不知道如何清缓存。
  所有以清缓存来解决的前端问题都是耍流氓,就像 Windows 一旦遇到问题就重启一样。造成缓存问题的原因要么是服务器没配置好,给不该缓存的页面加了缓存的头;要么就是前端项目构建时没有给资源文件加版本号或 hash。这些问题都是可以解决的,不用总是把遇到的问题归结为缓存。
  当然,在一些特定的环境下确实会遇到缓存问题。比如早期的微信内 WebView 就会顽固地缓存页面。即使页面的响应头包含 Cache-Control: no-cache 也没有任何作用(新版的微信貌似修复了这个问题)。但即便是这种环境问题也是开发人员应该考虑的,因为用户同样可能使用了这种顽固缓存的设备。如果程序发布了新版本,前后端同时更新,然后新的 API 突然不兼容旧版本的前端程序,可能就导致旧版本的用户全部无法使用。
  不要把责任推给缓存。
网名:
3.80.32.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^