GWT缓存概念

Noo*_*oor 8 gwt caching browser-cache

有人可以用简单的术语向我解释GWT中的缓存概念.我在很多地方都读到了这个,但可能是由于我的知识有限,我无法理解它.

比如nocache.js,cache.js

或者其他一些事情,例如永久地使客户端缓存文件或如何使客户端缓存文件,然后如果文件在服务器上更改,则客户端再次下载这些文件

Sri*_*nan 20

一般来说,有3种类型的文件 -

  1. 永远缓存
  2. 缓存一段时间
  3. 从不缓存

某些文件永远不会被缓存,并且总是落在"永不缓存"桶中.但最大的性能胜利来自系统地将第二个桶中的文件转换为可以永久缓存的文件.GWT可以通过各种方式轻松完成.

这些<md5>.cache.js文件可以永久保存.如果它们发生变化,GWT将重命名该文件,因此浏览器将被迫再次下载.

.nocache.js永远不应该缓存该文件.即使您更改了一行代码并重新编译,也会修改此文件.nocache.js包含的链接<md5>.cache.js,因此浏览器始终拥有此文件的最新版本非常重要.

第三个存储桶包含作为应用程序一部分的图像,css和任何其他静态资源.CSS文件总是在变化,因此您无法永远告诉浏览器"缓存".但是如果您使用ClientBundle/CssResource,GWT将为您管理该文件.每次更改CSS时,GWT都会重命名该文件,因此浏览器将被强制再次下载.这使您可以设置强大的缓存标头以获得最佳性能.

综上所述 -

  1. 对于任何匹配.cache的东西.,设置一个远期的expires头,有效地告诉浏览器永远缓存它.
  2. 对于任何匹配.nocache的东西.,设置缓存标头,强制浏览器重新验证服务器的资源.
  3. 对于其他所有内容,您应根据更改资源的频率设置一个简短的过期标头.
  4. 尝试使用ClientBundle/CssResource; 这会自动将您的资源重命名为*.cache存储桶