-1

javascriptから定期的に(10秒)ajaxを呼び出して、データベースからデータをロードしています。応答は小さな div にリストされます。しかし、10 秒に 1 回、マウスのクリック、キーの押下などのユーザー アクションにインターフェイスが応答しないという問題に直面します。このトピックに関するヘルプをいただければ幸いです。

コード

var onlineLeads = function () {
var reqst ="";
var size="";
var url ="<s:property value="str_applicationPath"/>/Marketing/Online_showNewRequest";   
xmlHttp.open("POST", url, false);                                           
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");  
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.onreadystatechange = function() {//Call a function when the state changes.
if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {

//Code for display

}
}
xmlHttp.send(); 
setTimeout(onlineLeads, 15000);
};
setTimeout(onlineLeads, 1000);
4

1 に答える 1

2

あなたはAjaxを実行していません:

xmlHttp.open("POST", url, false); 
//                        ^^^^^ 
//        Puts the request into synchronous mode

同期モードでは、応答が返されるまで呼び出しがブロックされます。これにより、JS イベント ループが拘束されます。

に変更falsetrueます。

于 2013-03-09T10:08:24.207 に答える