gpt4 book ai didi

javascript - jQuery 附加,等待直到呈现没有超时

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

我有一个 AJAX,它使用 jQuery append 方法将 HTML 附加到页面。 HTML 有点大,我想获取单元格的颜色,这些颜色由 CSS 在同一个 HTML 文档中设置。

我的问题是,如果我在 append 方法之后立即循环单元格,所有单元格都没有颜色,我必须等待几秒钟才能工作。现在,我正在超时以开始循环遍历单元格,但我不想这样做。我想知道 1) 为什么页面没有使用 append 呈现,为什么 append 在 html 完全呈现之前返回,以及 2) 我有哪些替代方案。

我正在考虑在 HTML 的末尾放置一个间隔来检查单元格的某些特定值,但我对这种方法不是很满意。

谢谢!

最佳答案

不要在 AJAX 响应中使用间隔。如果您将超时设置得足够长,它们就会工作,但您必须将超时设置为您想象的请求所用的最大值,即使在 5 秒后仍然有可能失败。此外,如果请求需要一毫秒,那么在接下来的 4.99 秒内什么也不会发生(如果您的超时时间为 5 秒)。

AJAX 函数采用多个参数。其中一些是字符串(例如“Content-Type:'application/json'”)。有些是对象(如 data:{requestId: 999})。您还可以提供其他功能作为参数。 $.ajax() 采用此类参数(称为“回调”)并根据请求返回的内容执行。您可以提供一个 error: 回调,它只会在出现错误(如 404 或 500)时执行。有一个 success: 回调将在成功获取内容后立即执行,无论是 1 毫秒还是 5 秒。这可能就是您想要的。

无论您在何处将参数传递给您的 $.ajax() 函数,都应像下面这样:

//...other arguments

success: function(response){
$('#myTable').html(response);
});

//..other arguments

如果/当服务器成功响应时,该函数将准确执行。我应该提到这个回调可以接受它自己的参数。其中,来自请求的实际内容就是其中之一(在上面的示例中,这是第一个参数,response)。无论您有 XML 或 JSON 甚至 HTML,这都是您的响应中的内容,以便函数据此采取行动。

您可能已经在使用回调,但由于没有代码,而且我看到“超时”与“AJAX”一词配对,我猜这就是您的答案。

关于javascript - jQuery 附加,等待直到呈现没有超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23257455/

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