数据库更改后使用Javascript重新加载页面
我正在显示数据库中的一个表,如下所示数据库更改后使用Javascript重新加载页面,javascript,php,database,laravel,eloquent,Javascript,Php,Database,Laravel,Eloquent,我正在显示数据库中的一个表,如下所示 <tr> <td>{{ $user->id }}</td> <td>{{ $user->... }}</td> <td>{{ $user->... }}</td> <td>{{ $user->... }}</td> <td>{{ $user->... }}</td> <
<tr>
<td>{{ $user->id }}</td>
<td>{{ $user->... }}</td>
<td>{{ $user->... }}</td>
<td>{{ $user->... }}</td>
<td>{{ $user->... }}</td>
<td>{{ $user->... }}</td>
<td>{{ $user->... }}</td>
<td>{{ $user->... }}</td>
<td>{{ $user->... }}</td>
<td>{{ $user->... }}</td>
<td>{{ $user->... }}</td>
<td></td>
</tr>
{{$user->id}
{{$user->……}
{{$user->……}
{{$user->……}
{{$user->……}
{{$user->……}
{{$user->……}
{{$user->……}
{{$user->……}
{{$user->……}
{{$user->……}
如果数据库中有更改,我必须在浏览器中按F5以显示更改。现在,每当数据库中发生变化时,我想用Javascript刷新页面。我不想在间隔时间刷新页面我有一个管理员谁可以改变别人的状态,你可以改变自己的状态。当某人更改自己的状态时,管理后端应该刷新 你们有什么想法吗
location.reload();
这是用于重新加载当前页面的javascript函数。如果需要,可以在js函数中使用此函数
这个问题有点大,所以如果你想根据你的场景得到正确的答案,请描述你的详细场景
你可能在找这样的人
最简单的解决方案是在一秒钟内自动刷新页面。因此,请在头部内添加以下内容:
<meta http-equiv="refresh" content="30" />
或
或
最简单的方法(已经提到)是每x秒重新加载一次页面
但是,这意味着,如果用户正在浏览/编辑页面上的任何内容,他只有x秒的时间来完成此操作,所有进度都将丢失
您可以使用AJAX检查数据库的更改,但是:
- 制作一个输出最新数据库条目的DB-Check.php脚本
- 在主文件中,包含一个AJAX脚本,该脚本将 DB-Check.php每30秒一次
- 将DB-check.php的输出放入一个新的JS变量中
- 如果新变量与旧变量不同,请刷新 整个页面(或使用AJAX加载数据库的其余部分)
如果发现任何更改,请在前端使用已获取的数据进行更新 如果您想要实时更新,那么您需要查看WebSocket。例如,每30秒向服务器发送一次请求,脚本将检查是否有更新,将答案返回给客户端,然后重新加载或不加载页面。您也可以查看长轮询。可能重复我对Javascript非常陌生,所以WebSocket对我这个初学者来说不是那么理想,但谢谢您的建议。我想我会尝试长轮询或短轮询方法。谢谢你的回答!正如我在问题中所说,我不想在一段时间后刷新它。我假设您使用的是PHP:)当然,它也应该适用于其他语言。
setTimeout('window.location.reload();', 30000);
setTimeout('history.go(0);', 30000);
setTimeout("location.reload(true);", timeoutPeriod);