同样的事情可以用刷新按钮来完成吗?我问是因为我创建了一个页面来显示用户保存到列表中的项目,这些项目可以通过点击删除按钮来删除。一旦发生这种情况,页面就会刷新(因为该项目从MySQL数据库中删除),当你点击“返回”时,浏览器会转到上一个有该项目的页面,这对我来说是个问题。我能想到的唯一解决方案是将“返回”重定向到另一个页面,特别是用户来自的页面。
请帮助我在告诉我如何重定向到另一个页面后,点击“返回”。
同样的事情可以用刷新按钮来完成吗?我问是因为我创建了一个页面来显示用户保存到列表中的项目,这些项目可以通过点击删除按钮来删除。一旦发生这种情况,页面就会刷新(因为该项目从MySQL数据库中删除),当你点击“返回”时,浏览器会转到上一个有该项目的页面,这对我来说是个问题。我能想到的唯一解决方案是将“返回”重定向到另一个页面,特别是用户来自的页面。
请帮助我在告诉我如何重定向到另一个页面后,点击“返回”。
1条答案
按热度按时间zpgglvta1#
你可以用History API来实现。
根据您的描述,用户的历史记录如下:
/foo -> /bar -- remove item --> /bar#refreshed
现在您希望用户在单击“返回”按钮后返回到
/foo
,因此:/foo <-- go back -- /bar#refreshed
.IMO的最佳解决方案是您不应该刷新
/bar
页面。而是 AJAX 更新包含数据的页面部分。如果地址栏需要更新,您可以使用这样只会改变地址栏的内容,但不会触发真实的的页面导航/刷新,因此您的用户的历史记录变成了
/foo -> /bar#refreshed
,因为您已经用/bar#refreshed
替换了/bar
。当用户点击“返回”按钮时,他们只是回到/foo
。如果您不能只更新页面的一部分,而必须重新加载
/bar
页面,那么一个次优解决方案如下所示。在刷新页面之前,您可以调用:
这样用户的历史记录就变成了:
这样,当用户点击“返回”时,他们仍然会返回到
/foo
。虽然历史包含一个额外的/foo
节点,但仍然可以完成任务。