2013-04-04 100 views
1

我正在嘗試使用$.when$.then函數進行一些AJAX調用。 我使用這些功能,以填補template,因此,在此期間,我要填補我會像

一些信息填寫表格,「加載數據..請等待」

我發現有一個progress函數,但它只適用於notify。我通過社區進行搜索,發現它與promise調用一起使用。我沒有真正瞭解promise的含義以及延遲對象在我的腳本中的工作方式。

這是我的腳本:

  $.when(e.get_info('get_utente')) 
      }).then(function(data){ 
       $('#username').val(data.username); 
       $('#email').val(data.email); 
     }) 

我想插入進步beetween這兩個電話。 很抱歉,如果有一些誤解,但「到現在我用ASYNC : false,之後我發現這是一個非常糟糕的主意,我發現了延期的對象,但我dindn't獲得在所有它的邏輯

回答

3

進度回調沒有按現在不適用於Ajax請求。

相反,請在$.when之前執行「加載數據..請等待」消息。

而且,你不需要$.when可言,只是做

$("#loading").show(); 
e.get_info('get_utente').done(function(data){ 
    $("#loading").hide(); 
    $('#username').val(data.username); 
    $('#email').val(data.email); 
}); 

$.when如果你需要在2個或更多的承諾對象是完整運行的東西時才需要。對於單個承諾對象,它不是必需的。

+0

首先,很好的答案。你能更好地解釋我使用$ .when的含義嗎? – steo 2013-04-04 19:14:09

+0

$ .when適用於需要完成兩個不同的ajax請求而不僅僅是一個ajax請求時執行某些操作的情況。你會得到一個處理程序,而不是每個處理程序的每個請求。 – 2013-04-04 19:17:54

+0

因此,如果我使用$ .when兩個Ajax請求,它會等待兩個完成? – steo 2013-04-04 19:20:10