数据库更改后使用Javascript重新加载页面

时间:2014-09-08 08:26:38

标签: javascript php database laravel eloquent

我从数据库中显示表格

<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>

如果数据库中发生了某些变化,我必须在浏览器中点击F5以显示更改。现在,我希望每次在数据库中发生变化时都使用Javascript刷新页面。我不想在时间间隔刷新页面。
我有一个可以更改某人状态的管理员,您可以自己更改您的状态。当有人更改自己的状态时,管理员后端应该刷新。

你们有什么想法吗?

5 个答案:

答案 0 :(得分:1)

最简单的方法(已经提到过)是每隔x秒重新加载页面。

但是,这意味着,如果用户正在浏览/编辑页面上的任何内容,则只有x秒才能完成此操作,然后才能丢失所有进度。

您可以使用AJAX检查数据库是否有变化:

  • 创建一个输出最新数据库条目的DB-Check.php脚本
  • 在你的主文件中,加入一个AJAX脚本来拉动 DB-Check.php每30秒
  • 将DB-check.php的输出放在新的JS变量
  • 如果新变量与旧变量不同,请刷新 整个页面(或使用AJAX加载数据库的其余部分)

答案 1 :(得分:1)

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

浏览从数据库获得的字段,并与页面中的当前字段进行比较。

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

答案 2 :(得分:0)

location.reload();

这是重新加载当前页面的javascript函数。你可以在js函数中使用这个函数吗?

这个问题有点大,所以如果你想根据你的场景得到正确答案,请描述你的详细情景。

你可能正在寻找这样的 How to automatically reload a web page at a certain time?

答案 3 :(得分:0)

最简单的解决方案是在第二时间自动刷新页面。所以,请在头脑中添加:

<meta http-equiv="refresh" content="30" />

每隔30秒刷新一次。 其他方式是通过javascript:

setTimeout('window.location.reload();', 30000);

setTimeout('history.go(0);', 30000);

setTimeout("location.reload(true);", timeoutPeriod);

答案 4 :(得分:0)

我会使用非常原始的API来做到这一点。 jQuery(或JS)向API url发出请求,返回boolean,并使用此boolean,true将触发刷新页面。 (或者甚至更好 - 更改内容而不使用jQuery而不刷新)这将是我的方法。