客户端嵌入 H5 页面所引入的静态资源是直接打包进客户端还是正常的 HTTP 请求(已做 CDN 缓存)好呢?

发布于 2022-08-31 20:56:38 字数 252 浏览 15 评论 0

一些用户反馈嵌入客户端的 H5 页面在访问的时候总是有些慢,于是开始考虑把一些常用的静态资源文件打包进客户端(主要指通用 js 库,通用样式库,还有样式背景图片),不知道这个方案有没有什么弊端,我目前想到几个问题:

  • 如果是一个新页面,客户端能不能及时的检测到新的静态资源并放到客户端本地,不需要发布也能做到
  • 如果静态资源改变,如何及时更新这些静态资源

有没有做过这种尝试的同行可以分享下经验,希望能得到一些意见。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

各自安好 2022-09-07 20:56:38

不必二选一。本地和网络的静态资源可以(也应该)共存。而在策略上,本地资源优先,本地资源失败时(页面更新等原因)再联网这也是自然的。

前端部署流程中“文件名加入签名(Hash)值”这种惯例性的方法,就可以简单的破除缓存影响,达到你的两点需求。

我推荐写页面时不做任何改动,保持所有资源从CDN请求的形式不变。提供本地文件的任务在客户端(HTML容器)这一层完成:

  • 或者在渲染前“污染”HTML页面的内容,把能够对应上的网址,改成指向本地文件
  • 或者截获HTTP请求,如果网址里的文件名能对应上,就直接提供本地文件的内容

至于动态请求来的资源怎么存储我没有想法,题主可以自己构思一下。我的直觉是最好根本不要在运行时动态存储,因为机制可能会变得很麻烦。在客户端每次版本更新时,把静态资源重新打包一次也就够了。

傲鸠 2022-09-07 20:56:38

请将问题表示更加清楚一下:

你指打包是指Java中的war还是手机端的类似phonegapHtml5程序包?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文