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