gpt4 book ai didi

javascript - html 页面没有机会在 ajax 调用之间呈现

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

我有一些“ajax”调用(实际上是 sjax,我猜你可以称之为它),我试图让它们在页面上渲染一次一个,但它们没有。它们都在最后渲染。我怎样才能将它们分开?

function getNames() {
var names = $('#thenames').val();
alert(names);
var splitnames = names.split(',');
for(var i = 0; i < splitnames.length; i++) {
var name = splitnames[i];

$.ajax({
type: 'GET',
url: '/acert/secure/people/namesservice/getnamesajax.jsp',
data: { usernames: name},
success: function(data) { $('#results').html($('#results').html() + data);},
async: false });
}
}
}

我不能冒它们以错误顺序返回的风险,所以我需要它们同步。我将它们放入 for 循环中,因此 for 循环应该让浏览器有机会在调用之间进行渲染,但我似乎无法做到。

关于我做错了什么有什么想法吗?

如果我在成功函数中添加一个警报框,它就可以工作,但我不想照顾该操作,我只想时不时地监视它的进度。

最佳答案

async: false 阻止浏览器。它完全锁定一切,包括对 DOM 的重绘。

我强烈强烈建议您不要使用async: false。这是非常糟糕的。

您也许可以在调用之间使用 setTimeout,但它们不能保证浏览器会触发重绘。

如果您设置async: true,您将不会遇到此问题,但您可能需要更改代码才能正确处理异步行为。

<小时/>

async false is so bad jQuery decided to remove it from the API.

关于javascript - html 页面没有机会在 ajax 调用之间呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15140380/

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