2011-11-16 107 views
0

我有一个应用程序向Web服务发出多个获取请求,并使用该数据显示地图。我在多个地方使用它。因为地图需要时间来加载什么是缓存获取请求的最佳方式?缓存jquery获取请求

我想到了以下方法

的,如果我只是使用的Memcache缓存响应我的应用程序仍进行GET请求。进一步优化我可以使用jquery/javascript缓存并设置Http cachingheader。

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

感谢

回答

1

您的情况最好的办法是从服务器端设置缓存和到期HTTP头,并迫使jQuery的同时使请求使用缓存。如果适用,我也建议从服务器发送修改日期。所以在缓存到期之后,JQuery首先询问服务的内容是否已从上次修改日期更改过。

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

主要有三种缓存方法(据我所知),以提高性能:

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

谢谢你认为使用memcached将有助于以任何方式,如果我实现的? – Kishore

+0

如果使用HTTP头实现客户端和代理缓存,则客户端只会请求一次服务。如果您实施Memcaching,缓存内容将被发送给请求相同服务的不同用户。如果适用,投注的做法是实施两者。 – SadullahCeran