Do while javascript问题

2024-03-07

我试图在 do while 循环中发送多个帖子,但结果未添加

<script type="text/javascript">
function action() {
    var initval = 1;
    var endval = 5;
    do {
    var action_string = 'txtuser=someone';

    $.ajax({
                    type: "POST",
                    url: "http://localhost/js.php",
                    data: action_string,
                    success: function(result){
                       $('div#append_result').append(initval + ',<br/>');
                     }  
                });
    initval++;
     } while (initval <= endval);
  }
</script>

输出是: 5、 5、 5、 5、 5、

我需要输出为: 1、 2、 3、 4、 5、


由于 AJAX 的异步特性,当您的 success 函数针对任何生成的 AJAX 请求运行时,循环已完成并且initval设置为 5。您需要捕获initval在每个请求开始时并使用捕获的状态success()方法。关闭该值是最简单的方法:

function action() {
    var initval = 1;
    var endval = 5;
    do {
        var action_string = 'txtuser=someone';

        ( function( captured_initval ){
            $.ajax({
                type: "POST",
                url: "http://localhost/js.php",
                data: action_string,
                success: function(result){
                    $('div#append_result').append(captured_initval + ',<br/>');
                }  
            });
        }( initval ) );

        initval++;
    } while (initval <= endval);
}

但请注意,一个或多个请求可能会在服务器上挂起,从而允许后一个请求先完成,这可能会导致1, 2, 5, 3, 4或类似的东西。

此外,使用元素的 ID 比使用元素标签名称作为哈希选择器前缀要快得多。另外,您应该避免每次成功运行时都重新查询 DOM 以获取结果 DIV。抓住一次并在需要时使用它:

function action() {
    var initval = 1;
    var endval = 5;
    do {
        var action_string = 'txtuser=someone',
            $AppendResult = $('#append_result');

        ( function( captured_initval ){
            $.ajax({
                type: "POST",
                url: "http://localhost/js.php",
                data: action_string,
                success: function(result){
                    $AppendResult.append(captured_initval + ',<br/>');
                }  
            });
        }( initval ) );

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

Do while javascript问题 的相关文章

随机推荐

  • 最高的 firebase 版本代码也用于编译播放服务库

    我在我的项目中使用某些 firebase 和 play 服务库 将播放服务插件版本更新至 4 0 0 后 由于 firebase 和 play 服务现在对每个库使用不同的版本编码策略 其中任一库中的最高版本代码将被所有其他库替换 这导致无法
  • 为什么 HRESULT 0 表示成功?

    我刚刚在处理 HRESULT 返回值时遇到了一些非常尴尬的事情 似乎成功为 0 失败为 1 这背后的逻辑是什么 我实际上尝试过if hr 并悲惨地失败了 浪费了我生命的一个小时 直到我发现实际的成功 retval 是 0 我想称想到这个的人
  • 没有活跃的源代码控制提供商

    我在 Ubuntu 上安装的 VS Code 编辑器表明它没有活动的源代码控制提供程序 我正在使用 Ubuntu 并且正在运行 git version 表明它是v2 18 0 我的项目中有一个 git 文件夹 我该如何解决这个问题 另外两个
  • 使用对象检测API的默认配置时,图像缩放器的不同尺寸有何影响

    我试图使用 Tensorflow 的对象检测 API 来训练模型 我正在使用更快的 rcnn resnet101 的示例配置 https github com tensorflow models blob master object det
  • 如何在windows下制作Qt mysql驱动?

    我已经在linux中多次构建了qsqlmysql so 我完全熟悉这个过程 但现在在愚蠢的窗口中 无论我做什么 我都无法构建它 我使用的是Qt5 12 1 最新 和Microsoft VS enterprise 2017编译器 我已经下载了
  • 在客户设备上测试 iPhone 应用程序

    我已经为 iphone 创建了一个应用程序 我还有一个苹果开发者计划证书来编译我的应用程序 现在我想将其发送给我的客户进行审核 我怎样才能做到这一点 他需要什么证书吗 谢谢你 是的 您需要前往苹果会员中心 然后前往配置门户 您需要在那里注册
  • 将 FOR XML 转换为 Varchar(max) [重复]

    这个问题在这里已经有答案了 我有一个返回 XML 的查询 我想将其转换为 varchar 我的查询返回 93 643 个 XML 字符 当我尝试将 xml 结果转换为 varchar 时 将结果集复制到文本编辑器时只得到 43 679 个字
  • Laravel 动态配置设置

    我在我的项目中使用一个包 它在里面存储一个设置config packagename 我想在配置文件中动态更改此值 这就是文件结构当前的样子
  • 如何在 MacOS 上安装 Firefox OS SDK?

    我想开始为 Firefox OS 进行开发 但安装时遇到问题 我正在关注 mozilla 的 wiki 但现在我不知道如何继续 我已经下载了 XULRunner 但是我该怎么办 我正在尝试遵循维基 但没有找到解决方案 Link https
  • 在子视图 (UIWebView) 上获取 TouchBegan

    我有一个 UIWebView 它作为子视图添加到 UIview 中 我想检测何时触摸此 UIWebView 但 TouchBegan 不起作用 任何想法 在代码中子类化 UIWebView 然后在类中实现 TouchBegan 将子类化的
  • Visibility.Collapsed 和 Visibility.Hidden 之间的区别

    之间有什么区别Visibility Collapsed and Visibility Hidden in WPF 不同之处在于Visibility Hidden隐藏控件 但保留它在布局中占用的空间 因此它渲染空白而不是控件 Visibilt
  • 判断Java中的网络掩码是否有效

    Java 6 中确定给定地址是否为有效网络掩码的最简单方法是什么 我找到了一个解决方案 它基本上创建了一组有效的IP以用于比较 即 255 255 255 255 255 255 255 254 255 255 255 252 等 有更简单
  • 无会话 CSRF 保护(双重提交 cookie)

    从我的讲座开始owasp org https www owasp org index php Cross Site Request Forgery 28CSRF 29 Prevention Cheat Sheet他们推荐同步器令牌模式 并且
  • Windows 8 将应用程序存储为企业软件

    我正在编写一个 Windows 8 应用商店应用程序 但该应用程序供我公司内部使用 该应用程序需要在 100 多台平板电脑上运行 因此安装过程必须简单 因此 我一直在使用 Windows 8 应用商店模板来创建我的应用程序 但现在我需要在我
  • 在 WPF 中将 DataSet 绑定到 DataGrid

    我知道这个问题之前已经被问过好几次了 但我无法得到这个 我有一个DataSet and a DataGrid 我想做的就是显示内容DataSet in the DataGrid 我写了这段代码 vConn new OleDbConnecti
  • 如何配置Intellij Idea live模板的适用上下文?

    我想为我的自定义文件类型创建一个实时模板组 但是当我选择适用的上下文时 除了我的自定义文件类型之外 还有一个文件类型或语言类型的列表 该列表是预定义的并且不能扩展吗 可用的上下文类型取决于启用的插件 Jetbrains 帮助页面中是这么说的
  • MapViewOfFile 失败,错误代码 6(无效句柄)

    我尝试将文件映射到内存并使用 MapViewOfFile 但它失败并显示错误代码 6 我尝试了几乎所有方法 我还读到大文件是问题所在 但问题也发生在 1kb 文件上 my code HANDLE hFile CreateFile pFile
  • java.lang.Thread.interrupt() 的作用是什么?

    你能解释一下什么吗java lang Thread interrupt 何时调用 Thread interrupt 设置目标线程的中断状态 标志 然后在该目标线程中运行的代码可以轮询中断状态并适当地处理它 一些阻止的方法 例如Object
  • 为什么 height: 0 不隐藏我的填充

    我有一个 div 带衬垫 我已将其设置为height 0 并给出它overflow hidden and box sizing border box div webkit box sizing border box moz box sizi
  • Do while javascript问题

    我试图在 do while 循环中发送多个帖子 但结果未添加