我制作了一个显示帖子墙的脚本,让我们评论和删除帖子。它工作正常。但是,当我要去另一个页面并尝试返回时,我看到没有进行任何更改,只有在pageload上呈现的内容(添加的注释和其他操作未显示)。
当我刷新它时,我得到了我的更改,因为它们保存在数据库中。
我没有使用骨干导航,因为帖子墙只放在使用骨干的网站上。
所以问题是,主干不会保存对DOM的更改或在导航回来时看到它们。
也许有人知道如何解决这个问题?因为用户会认为某些操作尚未保存并再次重复。
答案 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中解释。