目前的情况:我有一个网页,使用AJAX / JQUERY每17秒刷新页面上的所有内容。每次发生这种情况时,服务器都会向数据库查询两个表中的数据,其中一个表很大(450MiB,11列)并处理所有数据。
这太耗费资源。我想要:
我认为这属于彗星编程的范畴。我不确定。
2 很容易。网页每17(或更短)秒调用'update.php'。如果没有进行任何更改,PHP脚本将不返回任何数据。仅在返回数据时,才会将当前页面替换为新数据。如果有更好的方法,请告诉我。
至于 1 我的谷歌搜索告诉我每次更新我的两个表中的一个时,我可以在表中(或者可能只是文件中的一个字节)发出通知,表明我必须再次查询数据库,然后下次网页发送AJAX请求时返回数据。
问题是我正在处理一个我没有编写的相当大的代码库,而且我不知道两个表中任何一个可能被更新的所有地方。是否有更简单的方法来检查数据库何时被修改。
我正在使用PHP,Apache,Drupal和MYSQL。
答案 0 :(得分:0)
您可以删除服务器已发送事件
服务器发送的事件是指网页自动从服务器获取更新。
HTML5rocks.com - Server Sent Events
上有一篇很好的文章您只需要创建一个对象
var source = new EventSource('xyz.php'); //Your php files which will return the updates.
创建对象后,您可以收听事件
source.addEventListener('message', function(e) {
console.log(e.data);
}, false);