JSP がレンダリングされたら、ここで ajax を介して非同期呼び出しを行い、ページに追加情報をロードしようとしています。
UIスクロールバーのナビゲーションを妨げることなく、ajaxロードが適切に行われることを期待しています。ただし、呼び出しは、onLoad が完了するまで UI をブロックします。
また、このサービスは、マウス クリックの ajax 呼び出しでも UI をブロックします (カーソルは、pointer
データが読み込まれるまで型のままです)。
どちらの場合も、JavaScript を使用して DOM を構築しています (div またはテーブルの innerHTMl を作成するなど)。このせいでしょうか?または、他の何か?私のajaxリクエストコードを添付しています。
あなたの助けに感謝。(申し訳ありませんが、コードをフォーマットしようとしましたが、ここで取得できません)
function requestService(theService, theParamObj, isSyncCall) {
var ajaxRequest = getAjaxRequest();
var params = "data=";
if(theParamObj != null)
params += encodeURIComponent(JSON.stringify(theParamObj));
ajaxRequest.onreadystatechange = function() {
if (ajaxRequest.readyState == 1) {
showLoadingBox();
}
if (ajaxRequest.readyState == 4) {
handleResponse(ajaxRequest.responseText, theService, theParamObj);
hideLoadingBox();
}
};
var queryString = "?timestamp=" + new Date().getMilliseconds() + "&theService=" + theService;
if(isSyncCall == null)
isSyncCall = false;
ajaxRequest.open("POST", g_Service + queryString, isSyncCall);
ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
ajaxRequest.send(params);
}
更新: このサービスへの onLoad 呼び出し
function loadAdInfo(){
var theParamObj = {"REQUEST_URI" : window.location.href};
requestService('getAdInfo', theParamObj, false);
}