1

假设我的 PHP 页面执行“真实”操作。
我所说的“真实”是指执行数据库操作、写入文件之类的东西,而不仅仅是发送 HTML。

当我点击“返回”按钮到我的 PHP 页面时,假设它是一个 GET。

  • 这是否意味着我的 PHP 代码不一定会在所有浏览器上一直运行?

  • 如果我想在每次请求该页面时刷新图像(尤其是在“返回”上),我应该怎么做?

是我自己还是对javascript有内在的厌恶是正常的?(在我看来,它总是像一开始就无法工作的东西的补丁,而且不是每个人都让 javascript 工作)

我并不挑剔,但可以认为 HTTP 级别的解决方案在这里是最好的吗?

谢谢

4

2 回答 2

3

通过 POST 加载的页面将导致浏览器要求用户重新提交信息以查看页面,从而导致该页面执行的操作再次发生。如果页面是通过 GET 请求的并且在查询字符串中有变量,那么同样的事情会发生,但会默默地发生(不会提示用户再次 d 它)。

解决此问题的最佳方法是使用POST/REDIRECT/GET 模式我在我为 Authorize.Net 编写的关于处理付款的示例中使用了它。希望这会为您指明正确的方向。

于 2012-04-24T11:40:59.657 回答
2

我所说的“真实”是指执行数据库操作....

....假设它是一个 GET。

那么你已经破坏了 HTTP 的一个基本原则:Get 是幂等的,onlu POST、DELE 和 PUT 应该在服务器端修改状态。

这是有充分理由的;即使您告诉浏览器页面不可缓存,使用浏览器导航元素(后退、前进)也不需要浏览器回溯到 GET 或 HEAD 操作的原点。

如果我有图像,我想每次都刷新

...然后使用 javascript 通过 window.onload 方法使用随机生成的查询字符串获取图像。

于 2012-04-24T12:43:22.557 回答