Javascript 定期

Javascript 定期,javascript,ajax,Javascript,Ajax,我在javascript中以固定的间隔(10秒)调用ajax以从数据库加载数据。响应列在一个小分区中。但每10秒,我会遇到一次界面不响应用户操作(如鼠标单击、按键等)的问题。对此主题的任何帮助都将不胜感激 代码 var onlinereads=函数(){ var-reqst=“”; var size=“”; var url=“/Marketing/Online_showNewRequest”; open(“POST”,url,false); setRequestHeader(“内容类型”,“应用

我在javascript中以固定的间隔(10秒)调用ajax以从数据库加载数据。响应列在一个小分区中。但每10秒,我会遇到一次界面不响应用户操作(如鼠标单击、按键等)的问题。对此主题的任何帮助都将不胜感激

代码

var onlinereads=函数(){
var-reqst=“”;
var size=“”;
var url=“/Marketing/Online_showNewRequest”;
open(“POST”,url,false);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
setRequestHeader(“连接”,“关闭”);
xmlHttp.onreadystatechange=function(){//在状态更改时调用函数。
if(xmlHttp.readyState==4&&xmlHttp.status==200){
//显示代码
}
}
xmlHttp.send();
设置超时(仅限读取,15000);
};
setTimeout(onlinereads,1000);

您没有执行Ajax:

xmlHttp.open("POST", url, false); 
//                        ^^^^^ 
//        Puts the request into synchronous mode
在同步模式下,调用阻塞,直到响应返回。这将绑定JS事件循环


false
更改为
true

请提供代码或JSFIDLE或demo,我们不是同步的吗?只需发布您的代码。@Blender很抱歉丢失了代码。请查看我的编辑。@Dogoku很抱歉丢失了代码。请看我的编辑我很接近,在第5行。谢谢大家的快速回复。让我试试。谢谢。这就解决了问题。但我有一个疑问。如果存在多个ajax调用,如果我在同步模式下使用此请求,会不会产生任何问题如果您在同步模式下,那么一次不能有多个请求,它完全锁定了JS线程——这就是您遇到的问题。实际上,我正在界面右侧的一个小div中使用这个ajax响应。它每隔一段时间打电话。Ajax也用于主界面部分。那么,如果两个ajax请求同时发生,这会是一个问题吗?多个ajax请求同时进行没有内在的问题。在连接速度慢、更新频繁的情况下,构建和重叠通常是不可取的(如果没有其他内容,则会浪费资源)。通过仅在前一个响应返回时触发请求来避免这种情况。
xmlHttp.open("POST", url, false); 
//                        ^^^^^ 
//        Puts the request into synchronous mode