Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数据库更改后使用Javascript重新加载页面_Javascript_Php_Database_Laravel_Eloquent - Fatal编程技术网

数据库更改后使用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加载数据库的其余部分)

我会使用非常原始的API来实现这一点。jQuery(或JS)向API url发出请求,该url返回布尔值,使用此布尔值,true将触发刷新页面。(或者更好——不用jQuery而不用刷新来更改内容)这将是我的方法。

在一段时间间隔后使用ajax从数据库中获取数据

循环浏览从DB获得的字段,并与页面中的当前字段进行比较


如果发现任何更改,请在前端使用已获取的数据进行更新

如果您想要实时更新,那么您需要查看WebSocket。例如,每30秒向服务器发送一次请求,脚本将检查是否有更新,将答案返回给客户端,然后重新加载或不加载页面。您也可以查看长轮询。可能重复我对Javascript非常陌生,所以WebSocket对我这个初学者来说不是那么理想,但谢谢您的建议。我想我会尝试长轮询或短轮询方法。谢谢你的回答!正如我在问题中所说,我不想在一段时间后刷新它。我假设您使用的是PHP:)当然,它也应该适用于其他语言。
setTimeout('window.location.reload();', 30000);
setTimeout('history.go(0);', 30000);
setTimeout("location.reload(true);", timeoutPeriod);