为我的应用程序选择浏览器缓存与本地缓存之间的关系?

时间:2015-08-13 15:58:45

标签: javascript jquery html5 asp.net-mvc-4 caching

我想在我的申请中提供服务回复?最近几天我正在检查最佳解决方案,我有太多选择可供选择。

  
      
  • 浏览器缓存

  •   
  • HTML5本地缓存

  •   
  • MVC4缓存

  •   
  • Jquery Cache。

  •   

我的应用程序基于MVC / Ajax / Bootstrap构建。主要是我使用jquery从服务中获取数据。

1 个答案:

答案 0 :(得分:0)

我认为这有助于改写您的实际选择:

  • 客户端缓存
  • 服务器端缓存
  • 本地存储缓存

这些都不是互相排斥的。您可以使用一个或全部三个。事实上,采用客户端和服务器端缓存非常典型。本地存储缓存是一种新概念。它本身并不是真正的缓存,但是一些开发人员开始习惯使用它来缓存ajax-request脚本,使用AMD风格的JavaScript。

如果您的脚本真的很重,特别是如果您已经定位到移动或现代浏览器,那么您可能需要查看一些本地存储缓存实验。然而,其中大部分实际上只是:实验,可能还没有准备好用于生产。否则,只关注服务器端和客户端缓存。

服务器端缓存涉及服务器将数据存储在内存中以供其他请求使用。这可能是实际的数据结构或由一些预呈现的HTML组成的字符串。缓存服务器端允许您的服务器以更少的内存需求为代价来减少工作量。它非常适用于静态数据。例如,如果您从数据库中提取了站点导航,但并未经常更改,那么缓存渲染的站点导航HTML非常有意义,这样服务器就可以简单地将其用于其他请求而不是每次都要查询数据库并重建所有HTML。

客户端缓存涉及客户端(最常见的是Web浏览器),存储服务器接收的资产并使用这些资产为用户呈现视图,而不必向服务器发出另一个请求。像图像,JS,CSS等等都是客户端缓存的主要候选者,因为这些通常不会在页面之间发生变化。结果,一旦浏览器的缓存被引导"从第一个请求到站点,它通常只需要从服务器请求页面HTML。然后,它可以使用缓存中的支持资产来完全呈现页面。但是,即使是HTML也可以缓存,所以如果你有一个大部分是静态的页面,你可以设置Cache-Control或Expires标题,建议浏览器选择缓存页面。