2009-07-20 85 views
1

我正在使用jQuery.ajax(http://docs.jquery.com/Ajax/jQuery.ajax)将不同网页的内容注入当前页面。把它想象成一个“预览”窗口。 jQuery有一个可选的缓存参数,它非常适合从缓存中加载内容,而不是再次请求相同的页面。jQuery.ajax - 强制高速缓存失效

我的问题是,正在注入的内容可以从不同的位置进行编辑。发生这种情况时,我想使浏览器上的缓存无效,以便下一次请求页面内容时,jQuery将请求页面而不是使用缓存。我可以将缓存参数设置为false,但不会缓存任何内容。我需要缓存内容,并且只在源内容更改时重新请求。

如何使当前缓存的网页无效?

回答

2

在我看来,这是不可能的。假设你使用AJAX调用来调用update.php。现在每次你想使用缓存版本。但有一段时间你想要未缓存的版本。您必须通知您的站点使用未缓存的版本。因此,你可能需要另外一个并行脚本来检查ajax是否应该获取缓存或未缓存的update.php版本,这基本上会破坏你的目的。

你可以做到这一点,我认为该方法是使用E-标签:

http://en.wikipedia.org/wiki/HTTP_ETag

+0

这是否意味着没有办法从列表中访问缓存的项目列表,只需删除一个项目?不用检查内容是否发生了变化,当编辑内容时,我可以从缓存中完全删除页面......如果可能的话。 – 2009-07-20 14:10:05