缓存jquery get请求


caching jquery get requests

我有一个应用程序,它向web服务发出多个get请求,并使用该数据显示地图。我在很多地方都用过这个。既然映射需要时间来加载,那么缓存get请求的最佳方式是什么呢?

我正在考虑下面的方法

如果我只是使用Memcache来缓存响应,我的应用程序仍然会发出get请求。为了进一步优化,我可以使用jquery/javascript缓存并设置Http缓存头。

是否有其他方法可以实现来提高性能?因为我不想在所有页面上发出多个get请求来显示相同的地图内容。

谢谢

针对您的情况,最好的方法是从服务器端设置缓存和过期HTTP头,并强制Jquery在发出请求时使用缓存。如果适用,我还建议从服务器发送修改日期,这样在缓存过期后,JQuery首先询问服务的内容是否从最后修改日期更改。

如果您成功应用缓存头,客户端代码将不会发出http请求,直到缓存时间到期。

有三种主要的缓存方法(AFAIK)来提高性能:
  • 数据库缓存。在数据级缓存查询和结果,这样当服务发出查询时,它就不会每次都执行。如果你的数据库查询需要花费很多时间,并且不同的客户端发出相同的服务请求,你应该考虑一下。
  • 服务器内存缓存。如果应用了该操作,服务器不会执行该操作,而是从缓存内存中返回内容。这种方法比数据缓存更简单,也更有益。
  • 客户端缓存通过HTTP头:这是最有用的和适合您的情况的解决方案。如果客户端在生命周期中多次使用相同的参数向同一服务发出HTTP请求,那么就不需要一次又一次地从服务器获取相同的响应(如静态页面,图像,css和javascript文件)。您可以使用Cache-Control header和max-age属性来实现此目的。