javascript - 如何同时运行 ajax 调用 - php

标签 javascript php jquery ajax

这可能是一个愚蠢的问题,但我无法轻易弄明白为什么它会这样

我有两个ajax调用函数,

execCommand() : 用于通过 php 执行 shell 命令

shell_exec('ping 127.0.0.1 > ../var/log/tmp.log');

getLog() : 用于收集 execCommand() [../var/log/tmp.log] 的日志并显示给用户 [实时阅读]

echo file_get_contents(../var/log/tmp.log);

这是 jquery ajax 脚本

    $("#docker_install_fek").on("click",function(){

        $('#progress-window').show();
        getLog();
        execCommand();
    });

    function execCommand(){

        $.ajax({
            url: '<?php echo $block->getUrl('meta/reports/ajax',[]);?>',
            type: 'POST',
            data:{ip:$("#ip").val()},
            success: function(data) {
                alert(data);
            },
            error: function() {
                alert("fail");
            }
        });

    }
    function getLog() {

        $.ajax({
            type: "GET",
            url: "<?php echo $block->getUrl('meta/reports/progress',[]);?>",
            dataType: "text",
            success: function (data) {
                $("#progress-window").empty();
                $("#progress-window").append("<pre>"+data+"</pre>");
                $("#progress-window").scrollTop(1E10);
                setTimeout(getLog, 3000);
            },
            headers: {
                "Range" : "bytes=-500"
            }
        });
    }

我注意到在 firebug 网络选项卡中,两个 ajax 调用都在加载,但它从不呈现日志,直到 execCommand() 完成执行。

我不知道主要原因是什么,我测试了从终端运行 ping 127.0.0.1 > ../var/log/tmp.log 然后评论 execCommand() now getLog( ) 函数每 3 秒更新一次日志文件。

最佳答案

您正在使用 session 。在服务器端, session 被锁定,因此您一次只能通过一个脚本打开 session 文件。

如果您的服务器端脚本应该是非阻塞的,那么要么不要在其中使用 session_start(),要么确保尽快使用 session_write_close() 关闭 session ,以允许其他脚本运行。

关于javascript - 如何同时运行 ajax 调用 - php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42992533/

相关文章:

javascript - 如何在 AngularJs Promise 中获取使用的 http 调用参数?

javascript - 将静态内容添加到 highchart 导出的 pdf 标题中

php - 如果记录存在于另一个表中,则 MySQL INSERT

javascript - AngularJS : Handling value with same input name

jquery - 如何参数化sql查询

javascript - 使用 javascript 和 html、css 进行错误魔术缩放

javascript - 如何防止提交表单后恢复到上一个​​Tab

javascript - 一些图片不显示在 iphone 布局上

javascript - 将选定的选项附加到 FormData

jquery - 具有背景图像问题的切换类