浏览器和代理缓存将URL用作缓存键。在pjax中,URL用于请求部分Pjax页面和完整页面,因此这两个响应将被缓存在相同的密钥下。这显然会导致错误,因为可能会加载部分而不是整个页面,反之亦然。
如何去解决它呢?
我唯一能想到的就是在url中添加一个pjax标签。pjax是否提供了一种内置的方式来实现这一点?
谢谢!
附注:我正在使用Rails,以防有人在Rails中有一种特别优雅的方式。
发布于 2012-10-13 13:27:32
jquery-pjax将_pjax=true附加到XMLHttpRequest中的url。
另一种方法是每个URL只有一个页面。
这可以通过jquery-pjax实现,只需发送整个页面并使用fragment选项。
一种更灵活的方法是只发送最少的页面,并使用AJAX添加所有共享站点内容-页面横幅、导航、广告等。大多数AJAX只适用于初始页面加载,此后pjax将接管。这就是HTMLDecor的方法。
发布于 2012-12-21 13:12:48
Rails 4.0现在附带了Turbolinks。Turbolinks与pjax非常相似,不同之处在于它从服务器加载整个页面,然后更新页面的主体和标题,而不是重新加载。不需要在服务器端进行任何修改-服务器总是返回整个页面。这使得HTTP缓存变得微不足道。
https://stackoverflow.com/questions/12867110
复制相似问题