2012-06-21 60 views
0

我使用jQuery延遲對象,因此我可以從多個來源提取數據,但不知道如何在加載消息時顯示代碼,而一切正在解析,然後隱藏時一切都解決或拒絕如何使用jQuery延遲對象實現預加載程序

當前代碼:

jQuery.when(loadData('ws-get-shops.php', {shopId:123}),loadData('ws-get-customers.php')).then(updateResults,showError); 


var loadData = function(url, data){ 

    var jqxhr = jQuery.ajax({ 
     url:url, 
     data:data, 
     dataType:'jsonp', 
     timeout:60000 
    }); 

    return jqxhr; 
} 

回答

2

您可以添加(或節目)的加載消息啓動Ajax調用權之前,如:

$('#loadingMsg').show(); 
jQuery.when(...).then(updateResults,showError); 

,然後刪除(或隱藏),它在updateResultsshowError功能,當他們完成,如:

function updateResults(...) { 
    $('$#loadingMsg').hide(); 
    ... 
} 

function showError(...) { 
    $('$#loadingMsg').hide(); 
    ... 
} 

您還可以添加其他功能,作爲第三個參數爲then功能這就是所謂的when功能時取得進展並更新您的加載消息以顯示百分比或其他內容。

參考:http://api.jquery.com/deferred.then/