【问题标题】:Use cache if server not responding?如果服务器没有响应,使用缓存?
【发布时间】:2020-07-03 17:01:39
【问题描述】:
如果服务器没有响应,是否可以(我需要一些资源,因为我找不到任何资源)显示来自缓存的链接?
我想在高流量服务器上使用这样的东西。如果服务器遇到瓶颈或类似情况,我想显示网站/链接的缓存版本。
谢谢。
【问题讨论】:
标签:
javascript
ajax
caching
xmlhttprequest
service-worker
【解决方案1】:
您可以使用本地存储来存储 JS 和 CSS。但是,本地存储的每个域限制为 5Mb(移动)和 10Mb(桌面)。
当一个浏览器第一次访问该站点时,JS & CSS 被内联。 JS 还有另外两个工作:
1) 将 JS 和 CSS 存储到本地存储
2) 设置您将在下一次(第二次访问)时查看的键/值,另外您应该提供一个版本(用于明显的失效目的)。这将在第二次访问该站点之后以及如果
资产不在 localStorage 中(出于某种原因)
当浏览器第二次访问该站点时,应用程序会读取键/值和版本,如果它适合您知道浏览器
已经有相关的 JS & CSS。所以渲染 HTML 具有内联 JS 来从本地存储读取 JS 和 CSS 并插入到 DOM 树中。
阅读可能的影响:https://www.modpagespeed.com/doc/filter-local-storage-cache
因此,在 css/js 繁重的应用程序上,您可以减少服务器负载。请注意,在当前会话中,大多数处于私有模式的浏览器不支持本地存储
【解决方案2】:
使用local storage in browser
// Store
localStorage.setItem("lastname", "Smith");
// Retrieve
document.getElementById("result").innerHTML = localStorage.getItem("lastname");