缓存jquery获取请求

时间:2011-11-16 18:52:15

标签: php javascript ajax caching memcached

我有一个应用程序,它向Web服务发出多个get请求,并使用该数据显示一个映射。我在多个地方使用它。既然地图花时间加载缓存get请求的最佳方法是什么?

我正在考虑以下方法

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

有没有其他方法可以实现以提高性能?因为我不希望在所有页面上发出多个获取请求以显示相同的地图内容。

感谢

1 个答案:

答案 0 :(得分:1)

解决您问题的最佳方法是从服务器端设置Cache和Expires HTTP标头,并强制Jquery在发出请求时使用缓存。如果适用,我还建议从服务器发送修改日期,以便在缓存过期后,JQuery首先询问服务的内容是否已从上次修改日期更改。

如果您成功应用了缓存标头,则在缓存时间到期之前,客户端代码不会发出http请求。

有三种主要的缓存方法(AFAIK)可以提高性能:

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