gpt4 book ai didi

javascript - 异步ajax调用阻塞UI

转载 作者:行者123 更新时间:2023-11-28 20:11:44 25 4
gpt4 key购买 nike

渲染 JSP 后,我会尝试通过 ajax 进行异步调用,以在页面上加载附加信息。

我期望 ajax 加载能够优雅地进行,而不会妨碍 UI 滚动条导航。但该调用会阻塞 UI,直到 onLoad 完成。

在其他时候,即使在鼠标单击 ajax 调用时,此服务也会阻止 UI(在加载数据之前,光标保持为指针类型)。

在这两种情况下,我都通过 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);
}

最佳答案

XMLHTTPObject open 方法定义如下:

open(method,url,async)  Specifies the type of request, the URL, and if the request should be handled asynchronously or not.

method: the type of request: GET or POST
url: the location of the file on the server
async: true (asynchronous) or false (synchronous)

你传递的是错误信息。所以你称之为同步

关于javascript - 异步ajax调用阻塞UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19809271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com