Javascript重新加载页面实时结果

时间:2013-03-27 17:44:26

标签: javascript real-time

我知道我可以在一定时间后使用javascript刷新页面;

<html>
<head>
<script type="text/JavaScript">
<!--
function timedRefresh(timeoutPeriod) {
    setTimeout("location.reload(true);",timeoutPeriod);
}
//   -->
</script>
</head>
<body onload="JavaScript:timedRefresh(5000);">
</body>
</html>

一旦在数据库中添加/更新新字段以实时显示数据而不是“F5”,是否可以重新加载页面

3 个答案:

答案 0 :(得分:0)

您可以设置插入和更新触发器以发送将导致回调在应用程序中执行的事件。然后,应用程序可以调用已注册的JS回调函数。您可以在此处查看说明https://stackoverflow.com/a/812803/1418005

答案 1 :(得分:0)

通过UPDATE,INSERT和DELETE

上的MySQL触发器调用通知

这适用于大多数数据库,可用于在发生更改时(例如更新字段并且需要立即通知客户时)将服务器发送的事件直接发送到浏览器

使用Database TriggersServer-Sent Event Notifications将事件触发器直接发送到浏览器,并使用以下内容 - Invoke pusher when mysql has changed查找数据库中发生更改的任何内容。这实时发生在实时结果中。

答案 2 :(得分:-1)

您不应该在一定时间后刷新页面,这对用户来说相当麻烦。您应该使用setInterval向服务器发送另一个请求以动态更新页面。

http://www.w3schools.com/jsref/met_win_setinterval.asp

setInterval(fn, 5000);

function fn() {
  alert('???');
}

编辑回应: 您可以使用数据库触发器事件来触发插入事件,然后通知客户端读取,或者您可以使用轮询机制 - 使用(setTimeout / setInterval)每60秒查询一次数据库。这可以使用jQuery ajax或任何其他XHR机制来完成。

例如:

$.ajax({
  type: 'GET',
  url: 'server.php/GetPageData' // or GetPageUpdate
  data: {},
  success: function(data) {

  }
});