使用ajax修改页面时出现问题,浏览器将未修改的页面保留在缓存中

时间:2010-05-23 04:35:38

标签: html ajax caching

我的情况是我的页面从数据库加载一些信息,然后通过AJAX修改。

我点击指向另一个页面的链接,然后使用“后退”按钮返回原始页面。

我之前通过AJAX对页面所做的更改没有出现,因为浏览器将未更改的页面存储在缓存中。

有没有办法解决这个问题而不设置页面根本不缓存?

谢谢:)

1 个答案:

答案 0 :(得分:1)

想象一下,每次向服务器请求信息(包括初始页面加载和每个ajax请求)都是不同的实体。在服务器和浏览器之间的任何地方都可以缓存或不缓存每个。

您正在修改向服务器提供的初始页面(在大多数情况下由浏览器缓存),其中包含对服务器的任意请求和动态DOM操作。浏览器必须能够跟踪这些已更改的内容。

为了重建页面,您必须维护状态,可能使用cookie。实际上,在我看来,您可能希望移动到的动态生成的文档肯定应该定义一个工作流,该工作流会持久化并检索它的状态。

也许使用发送到服务器获取数据的密钥为每个被操纵的元素设置一个cookie?