我有一个页面A,显示我的数据库中的一些文本。该文本是可编辑的,并使用AJAX自动保存。如果用户离开该页面,然后使用浏览器历史记录功能返回到页面A,则页面将没有最新数据(因为我们回到了历史记录中)。并且用户将编辑旧数据,这将在服务器自动保存时覆盖服务器上的最新数据。
我认为这纯粹是一个前端问题,我的服务器无法做到这一点。可以提供哪些解决方案?如果有可能用javascript检测用户回到历史记录中,那么我可以简单地显示一条文本,说明用户必须刷新页面。但这有可能吗?或者有更好的解决方案吗?
答案 0 :(得分:4)
对于这种情况,有很多选择和策略。
您可以做的第一件事是尝试禁用页面上的缓存。您可以use meta tags执行此操作。
您还可以使用this one等库来跟踪用户何时按下后退按钮。您可以在服务器或客户端上进行响应,但是您要小心,因为禁用后退按钮会使用户烦恼。
如果你碰巧考虑使用像AngularJS这样的javascript框架,你可以使用框架跟踪后退按钮。
最后,您可以通过仔细的页面设计来解决这样的问题。如果页面上的数据可以更改,则可以在用户有机会编辑之前通过ajax加载当前数据。通过这样做 - 即使用户使用后退按钮,您的“加载”代码也会运行。有关详细信息,请查看this stack!
希望这些建议有所帮助!
答案 1 :(得分:0)
如果您使用的是Jquery,请使用/
$(document).on('pageshow', '#Content' ,function()
取代
$(document).ready(function()
它将解决您的问题,当该特定页面加载
时,将加载后端的javascript文件