如何让 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 调用之后立即附加输出 的相关文章

  • 在javascript中解析json - 长数字被四舍五入

    我需要解析一个包含长数字的 json 在 java servlet 中生成 问题是长数字被四舍五入 当执行这段代码时 var s x 6855337641038665531 var obj JSON parse s alert obj x
  • 动态地将工具提示文本设置为 div 元素

    我正在尝试动态地将工具提示文本设置为容器 div 并对我刚刚添加到有序列表的每个 div 元素 elem Alias Status 使用 jQuery function addNewElement elem var li li li li
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • 如何在使用页面锚点导航时设置“激活”类以在 Angular 2 中引导导航栏?

    我正在使用 Angular 2 和 Bootstrap 4 创建一个单页网站 我创建了一个始终位于页面顶部的导航栏组件 并且我正在使用页面锚点导航 id 请注意 我还没有创建路由模块 到目前为止还没有必要这样做 导航栏代码如下
  • 通过 CDN 使用 Dojo 时如何加载自定义 AMD 模块?

    我正在使用 google 的 CDN 并尝试使用他们的加载程序加载我自己的 AMD 模块 我知道我做错了什么 但我被困住了 有任何想法吗
  • 动态img(或视频)标签根本不加载资源,HTTP请求处于“待处理”状态

    我尝试使用以下方法在 Web 应用程序上加载资源时遇到一些问题img or videoHTML 标签 我在我的应用程序中使用 Angular 并动态设置src的参数img标签 使用ng src src 指示 没有那么多图像和资源需要加载 在
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • 如何使用tampermonkey模拟react应用程序中的点击?

    我正在尝试使用 Tampermonkey 脚本模拟对 React 元素的点击 不幸的是 由于 React 有自己的影子 DOM 所以天真的方法使用document querySelector 不工作 我遇到了一些需要修改 React 组件本
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • FireFox 中的自动滚动

    我的应用程序是实时聊天 我有一个 Div 来包装消息 每条消息都是一个 div 所以 在几条消息之后 我的 DOM 看起来像这样 div div Message number two div div div div
  • 如何在类似控制台的环境中运行 JavaScript?

    我正在尝试遵循这里的示例 http eloquentjavascript net chapter2 html http eloquentjavascript net chapter2 html and print blah 在浏览器中运行时
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • 长轮询会冻结浏览器并阻止其他 ajax 请求

    我正在尝试在我的中实现长轮询Spring MVC Web 应用程序 http static springsource org spring docs 2 0 x reference mvc html但在 4 5 个连续 AJAX 请求后它会
  • 如何在 pg-promise 中设置模式

    我正在搜索的文档pg 承诺 https github com vitaly t pg promise特别是在创建客户端时 但我无法找到设置连接中使用的默认架构的选项 它始终使用public架构 我该如何设置 通常 为数据库或角色设置默认架构
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中
  • Schema.org 的常见问题解答页面

    我有一个常见问题解答页面 我想用更好的 html 架构来实现它
  • Javascript/Jquery:确定用户是否使用鼠标滚轮、滚动条或键盘滚动

    我正在尝试让用户界面正常工作 如果他们使用鼠标滚轮 我需要让它以一种方式滚动 如果他们使用滚动条 我需要让它以另一种方式滚动 如果他们使用键盘 我需要让它以另一种方式滚动 我相信滚轮和滚动条都充当鼠标事件 但是当单击滚动条时我无法让 jav
  • jQuery 对象相等

    如何确定两个 jQuery 对象是否相等 我希望能够在数组中搜索特定的 jQuery 对象 inArray jqobj my array 1 alert deviceTypeRoot deviceTypeRoot False alert d
  • Bash 中单行 while 循环的语法

    我无法找到分号和 或大括号的正确组合 我想这样做 但作为命令行中的一句 while 1 do foo sleep 2 done while true do foo sleep 2 done 顺便说一句 如果您在命令提示符下将其输入为多行 如

随机推荐

  • 如何输入长度超过 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