2011-11-04 45 views
0

我讀了一些jqueryAjax的例子。 他們都展示瞭如何調用ajax onClick事件,然後填充html元素。如何在不使用onClick的情況下調用jquery ajax並填充客戶端的var?

但是,我想要一些eles。 我有一個客戶端var(MessageList)。我在JS上迭代它,當我到達最後時,我想從服務器重新填充它。

我寫了aspx頁面。 JS是在其標記。 在我後面的代碼寫了[的WebMethod]所謂「FillMessages()"返回字符串(JSON)。

我如何填寫MessageList使用JSON從這個WEBMETHOD返回,只有當客戶端完成遍歷當前MessageList

感謝

回答

0

你可以做這樣的事情:

$(document).ready(function(){ 

    var list = []; 

    //parses the list 
    function parseList(){ 
     $.each(list, function(index, obj){ 
      //do something 
     }); 
    } 

    //gets the json and class parse (could be added to a seperate function) 
    $.getJSON('test.apsx/FillMessages', function(data){ 
     list = data; 
     if(list.length > 0) { 
      parseList(); 
     } 
    }); 

}); 

不要忘了準備你的WebMethod做裝飾他們的智慧來處理得到的H:

[WebMethod(EnableSession = true)]   
[ScriptMethod(UseHttpGet =false, ResponseFormat = ResponseFormat.Json)] 
+1

看起來非常優雅。我如何在每個項目解析之間做出延遲? (我想顯示它們之間 –

+0

之間的延遲試圖做你說的,但去以下錯誤:GET http:// localhost:6578/TB/Display.apsx/RefillMessages 404(未找到) –

+0

你還在得到錯誤?大多數情況下,這是在這些情況下需要重新啓動的小型Visual Studio Web服務器。 –

0

怎麼會是第一個電話被觸發? 看看成功處理程序。

function getYouTubeVideoData(page) { 
    $.ajax({ 
     url : 'http://gdata.youtube.com/feeds/api/videos', 
     type : 'get', 
     contentType: 'application/json', 
     dataType : 'jsonp', 
     data: { 
      v:2, 
      'start-index': page*50+1, 
      'max-results': 50, 
      format:1, 
      alt:'jsonc', 
      key:'Your API Key', 
      q: "Led Zepplin" 
     }, 
     success : function(response) { 
      result_iterator(query, page, response); 
      getYouTubeVideoData(page+1);  
     }, 
     error: function(xhr, textStatus, errorThrown) { 
      logger("We had trouble getting data from YouTube..." + errorThrown); 
     } 
    }) 
}) 
相關問題