2011-06-19 332 views
2

我有以下问题:我有两个网页,a.phpb.php。第一个页面显示数据库中的项目列表,另一个页面将其更新并将用户发送回前一页面(使用window.history.back())。如何强制重新下载页面后退按钮点击

但是,当我从a.phpb.php,更新数据库中的一些条目并返回时,如果不手动重新加载页面,列表不会更新。有没有什么办法可以让我检测页面是否由于后退按钮操作而加载,并用JavaScript重新加载,或者只是告诉浏览器自动更新它?

+0

你有使用JavaScript的原因吗?这不会发生,如果你使用PHP等... – 472084

+0

@Jleagle正如我下面说的,我正在做一个移动的网络应用程序,如果我用PHP(或JavaScript,或其他任何东西,重定向),它会只是让历史记录太长,以至于用户必须多次点击后退按钮才能退出。 – Frxstrem

+0

我不认为PHP重定向添加到浏览器的历史。理想情况下,您听起来应该使用ajax来调用b.php,然后在成功时更新正确的单元格。 – 472084

回答

1

您可以设置a.php的头文件来禁止任何类型的缓存 - 这样,浏览器在重新输入页面时应该重新加载页面。

最相关的HTTP响应头是缓存控制和过期。

+0

我试过这个,都是通过从PHP发送头文件和使用HTML元标签,但是,它仍然不起作用... – Frxstrem

+0

@Frxstrem:嗯,奇怪。唉(正如我们已经看到无数次),大多数浏览器只是在方便的时候才支持这些标准。 – Piskvor

1

请勿使用window.history.back。使用location.href跳转到a.php

+0

我曾考虑过使用'location.href',但是,我正在为移动设备制作一个web应用程序,并且通过使用'location.href'(或类似的东西),用户最终不得不按下后退按钮很多次都是为了摆脱它。 – Frxstrem

+0

你可以在页面上添加类似'onPageLoad'事件的东西吗? – Kumar

+2

另一种解决方案可能是重新加载当前页面或向其发布数据。 'b.php'然后可以包含'a.php'而不是自己做的东西。而且,由于您是从浏览器的角度重新加载页面,因此可能无法记录到历史记录中。你仍然会有'b.php',但也许这并不算太坏.. – GolezTrol

相关问题