如何让 jquery 在循环中的每个 ajax 调用之后立即附加输出

2023-11-30

我想附加到一个元素并立即更新它。 console.log() 按预期显示数据,但append() 在 for 循环完成之前不执行任何操作,然后立即将其全部写入。

索引.html:

...
<body>
    <p>Page loaded.</p>
    <p>Data:</p>
    <div id="Data"></div>
</body>

test.js:

$(document).ready(function() {
    for( var i=0; i<5; i++ ) {
        $.ajax({
            async: false,
            url: 'server.php',
            success: function(r) {
                console.log(r); //this works
                $('#Data').append(r); //this happens all at once

            }
        });
    }
});

服务器.php:

<?php 
    sleep(1);
    echo time()."<br />";
?>

在 for 循环完成之前,页面甚至不会呈现。难道它不应该在运行 javascript 之前至少先渲染 HTML 吗?


如果你切换到async: true,那么屏幕将能够在您追加数据时更新。

$(document).ready(function() {
    var cntr = 0;
    // run 5 consecutive ajax calls
    // when the first one finishes, run the second one and so on
    function next() {
        $.ajax({
            async: true,
            url: 'server.php',
            success: function(r) {
                console.log(r); //this works
                $('#Data').append(r); //this happens all at once
                ++cntr;
                if (cntr < 5) {
                    next();
                }

            }
        });
    }
    next();
});

如果你坚持使用async: false(这通常很可怕),那么你可以放一个短setTimeout()每次 ajax 调用之间,屏幕都会在超时期间更新。

还有一些黑客通过访问某些 CSS 属性“可能”导致屏幕更新(不保证),这些属性只能在 HTML 布局最新时计算,这可能导致浏览器显示最新的更改。我说“可能”是因为这不是规范,只是对某些浏览器中行为的观察。您可以阅读更多有关这个选项在这里.

无论如何,由于您已经在使用 ajax 调用,因此解决此问题的最佳方法是使用async: true并将循环构造更改为可与异步 ajax 调用配合使用的循环构造(如我在示例中所示)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 jquery 在循环中的每个 ajax 调用之后立即附加输出 的相关文章

随机推荐

  • 如何输入长度超过 4095 个字符的值?

    我试图input 包含大量 JSON 粘贴的字符串 为什么我要粘贴一大堆 json 超出了我的问题范围 但是当我说我有一个不完全愚蠢的原因时 请相信我 然而 input 仅抓取粘贴的前 4095 个字符 原因见这个答案 我的代码大致如下 i
  • 使用带有position:absolute的li时,IE8不会悬停

    我有一种图像地图 我在其中使用 li 来创建元素 并将鼠标悬停在弹出的信息上 html代码是 li a href span nbsp span span class para Some text and maybe an image goe
  • Haskell 使用特定的数据构造函数过滤嵌套列表

    假设我有数据类型 data Joke Funny String Lame String 并说我有以下嵌套列表 Funny Haha Lame boo Funny Haha Lame BOO 我将如何过滤这样的嵌套列表 以便嵌套列表中包含的任
  • sqlfiddle.com 5.5.30 和 MariaDB 5.5.31 中的不同结果

    sqlfiddle http sqlfiddle com 2 9a8b3 1 从小提琴中获取结构和数据并进行查询 导入到我的 MariaDB 5 5 31 中 我得到不同的结果 sqlfiddle PID NAME LEAGUEPOINTS
  • 使用 XOR 实现 OR,AND

    我想知道我是否可以实施or and函数仅使用xor 我认为这是不可能的 但我需要证明这一点 有任何想法吗 提前致谢 您不能仅使用 XOR 来实现 OR 或 AND 门 因为它不是通用门 此外 XOR 函数无法区分其输入处的 1 1 和 0
  • 在 AngularJS 中将货币从美国转换为英国

    我尝试显示此代码 但我需要 AngularJS 自动转换货币 div default currency symbol 0 00 currency custom currency symbol 0 00 currency div 正如 And
  • LuaSocket (UDP) 未接收数据报

    我正在为我正在进行的项目尝试 LuaSocket 我选择 UDP 作为我的协议 在网上寻找文档和教程 我尝试创建一个客户端 服务器对以进行测试和学习 根据我所读到的内容 以下代码应该可以工作 然而 只有服务器似乎工作正常 客户端发送消息 但
  • C++ 继承 - 无法访问基点?

    我似乎无法使用基类作为函数参数 我是否搞乱了继承 我的主要内容如下 int some ftn Foo f some code Bar b some ftn b Bar 类以这样的方式继承自 Foo class Bar Foo public
  • Instagram API - 如何检索用户在 Instagram 上关注的人员列表

    我想知道如何检索用户在 Instagram 上关注的人员列表 假设这个特定用户是我关注的人 所以我可以在 Instagram 应用程序上访问他 她的照片和他的关注者 如何使用 Instagram API 来执行此操作 这样做合法吗 进一步开
  • 在 Powershell 中确定不同时区的夏令时状态

    PowerShell 中是否有一种巧妙的方法来确定另一个时区的过去日期是否是夏令时 情况是这样的 我们的数据库位于欧洲 时间和日期是该服务器本地的 由于欧洲和美国在不同时间开始和停止 DST 因此我需要考虑这些时间的时差 谢谢你的建议 无需
  • 如何立即停止使用 ExecutorService 启动的任务?

    我尝试了许多不同的方法来立即停止使用 ExecutorService 启动的任务 但没有成功 Future
  • 修复内存泄漏

    我最近发现Delphi有一个名为ReportMemoryLeaksOnShutdown的全局变量 当设置为True时 将在应用程序关闭时检测内存泄漏 我通过阅读另一个相关问题的一些评论发现了这些信息 Delphi中检测内存泄漏的最佳工具是什
  • 自动增量不起作用

    我想创建一个表 其中包含 1 个预定义行 因此 我在 onCreate 中添加该行 以下是我的代码 private static final String CREATE CATEGORY TABLE CREATE TABLE CATEGOR
  • 当背景图像应延伸页面的整个长度时,页面右侧会出现空白[关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我们的网页背景图像在 iPad iPhone 上的 FireFox 和 iOS 中的 Safari 中出现问题 页面右侧出现空白 背景图像在其他浏览器上可以很好地扩展 但我们很难在这些浏览
  • JavaScript OOP 与 jQuery

    我有对象myObject 里面我有函数execute 里面我有 ajax 其中有complete function xmlHttp 在该函数内部我想调用 setResult 它是在myObject 怎么做 function myObject
  • 文件存在并且是目录,但 listFiles() 返回 null

    的文档File listFiles 建议null仅当调用它的文件不是目录时才会返回 我有以下内容 String dir storage emulated 0 File f new File dir Log v Files f exists
  • jQuery 点击在 iOS 中不起作用?

    我在网站中添加了一些简单的 JavaScript jQuery document click function alert click 并且只有当有人点击实际的锚元素 按钮元素或带有cursor pointer CSS 具体来说 我在 Bo
  • 通过自定义 URL 方案启动 Blackberry 应用程序

    我正在研究 RIM HttpFilterRegistry 部分 任何人都可以解释如何使用 UI 入口点在本机应用程序中嵌入 协议和 packageManager 类 要求 当选择来自 BB 浏览器的 URL 时启动本机第 3 方应用程序 如
  • HTTP1.1 到 HTTP/2:标头怎么样?

    在 HTTP 1 1 中 状态行是 scheme version code reason HTTP 1 1 200 OK 我在 HPACK 规范中看到 scheme 和 status 标头 但是我没有看到任何版本或原因 难道就没有一个吗 在
  • 如何让 jquery 在循环中的每个 ajax 调用之后立即附加输出

    我想附加到一个元素并立即更新它 console log 按预期显示数据 但append 在 for 循环完成之前不执行任何操作 然后立即将其全部写入 索引 html p Page loaded p p Data p div div test