【问题标题】:Choosing betwen browser cache vs local cache for my application?为我的应用程序选择浏览器缓存还是本地缓存?
【发布时间】:2015-11-06 17:03:47
【问题描述】:
我想在我的应用程序中响应我的服务?最近几天我正在寻找最佳解决方案,但我有太多选择。
浏览器缓存
HTML5 本地缓存
MVC4 缓存
Jquery 缓存。
我的应用程序是基于 MVC/Ajax/Bootstrap 构建的。主要是我使用 jquery 从服务中获取我的数据。
【问题讨论】:
标签:
javascript
jquery
html
asp.net-mvc-4
caching
【解决方案1】:
我认为这将有助于重新表述您的实际选择:
这些都不是相互排斥的。您可以使用一种或全部三种。事实上,同时使用客户端和服务器端缓存是非常典型的。本地存储缓存是一种新概念。它本身并不是真正的缓存,但一些开发人员开始尝试使用它来处理诸如缓存 ajax 请求脚本之类的事情,使用 AMD 风格的 JavaScript 包含。
如果您确实需要大量脚本,尤其是如果您已经针对移动或现代浏览器,那么您可能需要研究一些本地存储缓存实验。然而,其中大部分实际上只是:实验,可能还没有准备好用于生产使用。否则,只关注服务器端和客户端缓存。
服务器端缓存涉及服务器将数据存储在内存中以供其他请求使用。这可能是一个实际的数据结构或由一些预渲染 HTML 组成的字符串。缓存服务器端允许您的服务器以额外的内存需求为代价减少工作量。它非常适用于静态数据。例如,如果您有从数据库中提取的站点导航,但并不经常更改,那么缓存呈现的站点导航 HTML 是很有意义的,这样服务器就可以简单地将其用于其他请求每次都必须查询数据库并重建所有 HTML。
客户端缓存涉及客户端(最常见的是网络浏览器),存储从服务器接收的资产并使用这些资产为用户呈现视图,而无需向服务器发出另一个请求。图像、JS、CSS 等都是客户端缓存的主要候选对象,因为这些通常不会因页面而异。因此,一旦浏览器的缓存从第一次请求到站点时“启动”,它通常只需要从服务器请求页面 HTML。然后它可以使用缓存中的支持资产来完全呈现页面。但是,即使 HTML 也可以被缓存,所以如果您有一个大部分是静态的页面,您可以设置 Cache-Control 或 Expires 标头,建议浏览器可以选择缓存该页面。