繁体   English   中英

页面刷新如何工作?

[英]How does page refresh work?

我一直在寻找Stackoverflow,以找到一种与F5相同的方法来重新加载页面。 我的意思是我有以下问题:

我有一个包含表单的php页面(比如说data.php)和一个包含DB数据的表。 表单通过post方法调用另一个php页面以执行操作(action.php)。 Action.php被调用,我的数据库被更新。 现在,我想返回data.php,并希望更新表以读取数据库中的更改。

我所做的是在action.php中尝试以下操作:

  1. Header('Location:data.php'):这没有用,因为它将我发送到data.php,但是在通过F5刷新页面之前,我看不到表格中的任何变化,我发现这是由于php是一种服务器端语言,这样它就无法在您的浏览器上起作用并告诉它重新加载页面,对吗?
  2. Header('Location:data.php?u = reload'):然后在data.php中对$ _GET ['u']进行控制,如果该变量等于reload,我就在data.php中设置了header.data.php,然后调用一个jscript location.reload。 同样,我在桌子上没有任何变化。

现在,我希望在数据库更新后自动刷新data.php表,以便使用户能够立即查看他引入的更改,而无需手动重新加载页面,该怎么办?

非常感谢!

编辑:

实际发生的情况如下:我有一个文件夹,其中图像以imgID.EXT的形式存储,还有一个数据库,其中图像数据以ID,EXT,TEXT的形式存储。 Data.php加载按ID顺序排列的带有其自身文本的图像列表,并具有修改列表的按钮(就像每个图像都有上移按钮,下移按钮,删除按钮一样)。 当我调用moveup时,我转到action.php,它更改了图像的ID,将其在列表中向上移动,并更改了图像文件夹中的名称,然后返回到data.php。

重定向后,我看到的图像与以前的位置相同,但是例如image#5的TEXT与image#4的TEXT正确交换了。 当我使用F5刷新(或使用浏览器按钮重新加载页面)时,image#5与image#4交换,一切正常。 我想在不使用F5的情况下进行任何交换,但无法理解问题所在。

在用户加载data.php之前,mySQL可能尚未完成在数据库中插入/更新行的操作。 我曾经有过一次,解决的是在我的标头重定向之前使用sleep(1)。

这不是最佳解决方案,但可以解决问题。 最好在显示成功通知后使用一些JavaScript来处理表单或重定向用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM