浏览器返回时提交的内容消失

时间:2013-01-26 13:28:26

标签: backbone.js

我制作了一个显示帖子墙的脚本,让我们评论和删除帖子。它工作正常。但是,当我要去另一个页面并尝试返回时,我看到没有进行任何更改,只有在pageload上呈现的内容(添加的注释和其他操作未显示)。

当我刷新它时,我得到了我的更改,因为它们保存在数据库中。

我没有使用骨干导航,因为帖子墙只放在使用骨干的网站上。

所以问题是,主干不会保存对DOM的更改或在导航回来时看到它们。

也许有人知道如何解决这个问题?因为用户会认为某些操作尚未保存并再次重复。

1 个答案:

答案 0 :(得分:0)

您是否正在使用Backbone来增强服务器端呈现的页面,即Backbone不会使用AJAX请求获取数据并将DOM构建为空白页面?

如果是这种情况,问题不在于Backbone,而在于浏览器缓存。浏览器正在呈现上次请求该URL时收到的HTML的缓存副本。当您在页面上时,浏览器不知道或不关心Backbone修改了DOM。

尝试配置服务器以提供以下HTTP响应标头,以指示浏览器不要缓存页面副本:

Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0

标题在此Stack Overflow thread中解释。