Ajax发布到PHP脚本,每5秒查询一次MySQL数据库的性能/问题
Ajax post to PHP script that queries MySQL DB every 5 seconds performance/problems?
我有一个jQuery ajax函数,它发布到PHP脚本,然后从数据库中检索一些字段并将它们返回给客户端。单击按钮后,ajax 函数每 5 秒运行一次:
window.setInterval(function()
{
ajaxCall("lobby");
}, 5000);
ajax 函数:
function ajaxCall(param)
{
$.ajax({
url: "script/lobby.php",
type: "post",
dataType: "json",
data: param,
success: function(data, textStatus, jqXHR){
//do stuff with data
},
error:function(jqXHR, textStatus, errorThrown){
//show error
}
});
}
这是个好方法吗?我在某处读到,如果操作错误,可能会造成电话积压。我将如何防止这种情况,或者是否有更好的方法,而不是为每个用户每 5 秒查询一次数据库?
不要创建间隔,而是在上一次调用完成之前不要开始对服务器的下一次调用:
function ajaxCall(param)
{
$.ajax({
url: "script/lobby.php",
type: "post",
dataType: "json",
data: param,
success: function(data, textStatus, jqXHR){
setTimeout(function () {/*Use setTimeout instead of setInterval*/
ajaxCall();/*This will keep getting called until an error is hit*/
}, 5000);
//do stuff with data
},
error:function(jqXHR, textStatus, errorThrown){
//show error
}
});
}
ajaxCall(); /*This starts things off*/
您可以尝试使用滑动的计时比例。 我确定它有一个名字,但最初每次检查从 1 秒开始,然后在这么多"空更新"之后,即。没有变化,两次检查之间延长到 5 秒,然后延长 15 秒,依此类推。
当您收到指示活动的数据响应时,您可以将检查重置为 5 秒。
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- Javascript html每点击一次就会更改url
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- jQuery滚动功能只工作一次
- 刷新导致我的帖子“;张贴“;再一次
- 引导程序崩溃一次只能看到一个
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 加载器组件仅加载一次
- 根据Angular.JS上一次的内容禁用选择
- 一次又一次地在新的和相同的选项卡中打开一个url
- 只在宽度以下和宽度以上各准备一次
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- mysql查询一次在单个查询中的多个表中插入记录
- Ajax发布到PHP脚本,每5秒查询一次MySQL数据库的性能/问题
- 如何每 5 分钟重复一次 mysql 查询
- MySQL事件每快照5分钟更新一次
- 每5秒读取一次MYSQL表,并在PHP页面上动态显示结果,而无需刷新
- 每 5 秒调用一次 MySQL 查询