Javascript 如何从另一个页面触发页面刷新(无重定向)?

Javascript 如何从另一个页面触发页面刷新(无重定向)?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,所以,我有很多这样的页面,带有GET参数:benchmark.php?game_id=87 显示特定游戏的信息(信息在数据库中),还包含一个编辑按钮 编辑按钮使用JSwindow.open(“Edit_game.php?game_id=87”,…)打开一个新窗口。 编辑窗口包含几个用于添加/修改数据的文本框和一个保存按钮 这里需要的行为是,当我按下edit_game.php页面上的Save按钮时,不仅信息被保存在数据库中(这是有效的),而且benchmark.php?game_id=87页面也可

所以,我有很多这样的页面,带有GET参数:
benchmark.php?game_id=87
显示特定游戏的信息(信息在数据库中),还包含一个编辑按钮

编辑按钮使用JS
window.open(“Edit_game.php?game_id=87”,…)打开一个新窗口。
编辑窗口包含几个用于添加/修改数据的文本框和一个保存按钮

这里需要的行为是,当我按下
edit_game.php
页面上的Save按钮时,不仅信息被保存在数据库中(这是有效的),而且
benchmark.php?game_id=87
页面也可能被刷新,以便显示的信息是真实的。我不知道如何进行“在第x页提交,第y页已知晓并刷新”

我想我应该使用AJAX,但是我不知道从哪里开始。我试过的是这样的

setInterval( function(){
        $('#refresh_station').load('game_information.php');
    }, 2000);
它每2秒钟刷新一次
benchmark.php?game_id=87
中的信息,但我发现这非常低效,因为即使没有修改,它也会刷新信息

这是处理这种情况的唯一方法吗


编辑:我应该提到,
Edit_game.php?game_id=87
在按下Save后不应该关闭或执行任何操作。因此,我不能仅仅使用提交表单重定向回
benchmark.php

,在我看来,每隔几秒钟运行一个循环检查记录是否已更改不是最好的解决方案。在弹出窗口中提交表单时,有一种更容易触发页面刷新的方法

使用
window.opener
可以在打开当前弹出窗口的窗口上执行操作。就你而言:

<form onsubmit="window.opener.location.reload();">
Your form here.
<input type="submit" value="Save changes">
</form>

是的,您应该使用Ajax,因为它还应该在数据库表last_update中添加一个字段,现在当page edit_game.php?game_id=87加载它时有last_update time,Ajax会在某个时间间隔检查此上次更新,如果Ajax看到有任何更新页面应该刷新。

IMO,最好的方法是使用弹出表单。如果您的网页已经在使用引导,您可以使用编辑表单作为内容轻松添加一个模式弹出窗口。单击编辑按钮时,您可以打开此弹出窗口,而不是打开新窗口

然后单击submit按钮,使用ajax提交此表单,并在ajax成功函数中添加javascript/jQuery以关闭模式并刷新页面内容。

可以与子窗口通信

可以让你从儿童窗口收听

这应该能帮助你实现你想要的。 整个过程借助于事件和消息进行通信


此外,您还需要在本地运行此操作(因为我打开了同一窗口的弹出窗口)

您要么将编辑表单设置为弹出窗口,而不是新窗口,并在Ajax成功时刷新页面内容,要么每隔几秒钟自动刷新页面内容。您确实需要使用ajaxI,正如我所说的,使用Ajax并不介意。我想要一些关于如何使用它来处理这种特殊情况的建议。不要每隔几秒钟刷新一次页面,这对于这样的事情来说是个糟糕的主意。如果只有一个弹出窗口,您仍然可以访问页面的DOM,使用您在成功的AjaxOh上发送的数据更新它,这是一个新窗口。我建议制作一个模态叠加新窗口,使类似的东西非常具有挑战性。OP没有给出使用Boostrap的指示。这就是为什么我提到“如果”。否则,她可以使用任何弹出式插件。“IMO”和“If”不做回答,他们会提出适合评论而不是回答的建议。我尝试了这种方法(理论上似乎很好),但按下Save按钮后,它会简单地重定向到Hi Florina。你说它重定向是什么意思?你正在打开一个弹出窗口,对吗?这个弹出窗口有edit_game.php页面。单击“保存”后,您希望重新加载原始窗口(主窗口),对吗?是。我希望主窗口刷新,但弹出窗口保持不变。使用此方法使弹出窗口成为主窗口(ergo重定向)@Florina希望Laurens可以帮助您发布更新的代码,因为我可以看到他的建议应该有效。请参阅上面发布的代码的工作示例:(检查index.php和popup.html的源代码)(很抱歉,不能使用JSFIDLE或其他类似的网站,因为它不允许弹出窗口)我想这是最有效的方法。但是,由于我有很多用户和很多游戏,我也可以每2秒刷新一次,并以相同的方式结束。如果你需要Ajax代码,我没有问题,只要恢复Ajax代码@Florina即可
$('form').submit(function() {
    window.opener.location.reload();
});
postMessage
window.addEventListener("message", function (event) {});