簡體   English   中英

jQuery多個Ajax調用

[英]jQuery multiple ajax calls

在對兩個不同的頁面進行ajax調用時,其中一個頁面不斷發送響應,而另一個頁面則繼續加載並在完成后發送響應。

這就是我在做什么:

$('.container').html('Please wait... Working : <span id="done">0</span></div>').fadeIn("slow");
$.post('work.php',{'p' : 'proccessImages'},function(data){
    if(data == "success"){
        $('div.container').html("Images processed!").slideDown(3000);
    }
});

現在我真正在做的是,在進行上述調用時,“ Work.php”會創建一些圖像縮略圖,這會花費一些時間,而另一個名為“ done.php”的腳本會檢查生成多少圖像並做出響應使用JSON,完成“ Work.php”處理后,它還會發送回“成功”消息。 這是另一個功能,該功能使用已經完成的圖像更新ID為“ done”的跨度!

function repeatJSON(){
    $.getJSON( "http://localhost/done.php", function( data ) {
        var items = [];
        $.each( data, function( key, val ) {
            var currentValue = $("#done").text();
            if(val !== currentValue){
                $("#counter").html("<b>"+val+"</b>").css({"color" : "black"}).hide().fadeIn("slow");
            }
            setTimeout(function(){repeatJSON()},2000);
        });
    });
}

如果我在$ .post中執行上述重復功能,盡管腳本一直在后台運行,但它將無法正常工作,並且也不會再收到“ Work.php”的響應。

有可能會打兩次電話嗎? 一個不斷工作,另一個不斷更新?

默認情況下,AJAX調用是異步的,但是jquery AJAX函數提供了進行同步調用的屬性。 您可以將async屬性設置為false以進行同步調用,然后在Work.php的成功模塊中,您可以向另一個文件(該文件加載依賴數據)發出另一個請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM