1

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);
}
4

1 に答える 1