繁体   English   中英

同时对PHP进行两次AJAX调用

[英]Making two simultaneous AJAX calls to PHP

我有一个表单向我的一个控制器提交AJAX请求,该控制器使用PHP的curl上传文件。 我想向用户显示该(PHP)上传的状态,因此我将PHP上传的进度存储在会话变量中。 同时,表单的提交还会启动setInterval() ,该setInterval()向检查会话变量的控制器发出不同的 AJAX请求。 我的问题是第二个AJAX调用似乎只触发一次(而不是整个上传过程),因此,不是逐步更新进度,而是在最后返回100。 我究竟做错了什么?

这是我的代码:

(注意:我正在使用jQuery表单插件来协助文件上传。它还会添加一些其他回调)

<script>
var check_progress = function() {
    $.ajax(
        {
            url : '/media/upload_progress',
            success : function(data) {
                console.log(data);
                },
            async : false

        }
    );    

var options = {
    beforeSend : function() {
        $("#MediaSubmitForm").hide();
        $("#MediaSubmitForm").after('<img class="hula-hippo" src="/img/hippo-hula.gif" />');

        t = setInterval( check_progress, 500 );

    },
    success : function(data){
        $(".hula-hippo").hide();
        $("#MediaSubmitForm").after("<h3>Upload complete!</h3><p>Do <strong>you</strong> want to <a href='#'>create a project</a> of your own?</p>");
        window.clearInterval(t);
        console.log(data);
    }    

};
$("#MediaSubmitForm").ajaxForm(options);
</script>

使用setTimeout(); setInterval()在指定的时间后执行代码,而setTimeout()每次在指定的时间后执行代码。

这些问题很好地解释了它们的区别:)

在SO上对此进行搜索将解决您的问题:)

听起来这是一个PHP锁定问题。 请参阅此问题答案中的第一条评论:

jQuery:同时发出ajax请求,这可能吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM