2011-01-11 132 views
1

我試圖加載在茉莉的數據集爲我的測試,如這樣...... 但是作爲一個JSON調用我似乎無法總是得到測試通過「,它表示「在使用其數組之前等待JSON調用完成。我嘗試使用ajaxStop函數無濟於事。有任何想法嗎 ?Jquery的AJAX負載測試

describe("simple checks", function() { 

    var exampleArray = new Array(); 

beforeEach(function(){ 

    $(document).ajaxStop(function() { 
     $(this).unbind("ajaxStop"); 

     $.getJSON('/jasmine/obj.json', function(data) { 

     $.each(json.jsonattr, function(i, widgetElement) {      
      exampleArray.push(new widget(widgetElement)); 
      }); 
      }); 
     }); 

}); 


    it("use the exampleArray", function() { 

    doSomething(exampleArray[0]); // frequently this is coming up as undefined 

}); 

回答

3

而不是使用$ .getJSON的,你可以使用$阿賈克斯()和異步設置在你的參數錯誤,然後使用.parseJSON()解析JSON:

 
$.ajax({ 
    url: '/jasmine/obj.json', 
    async: false, 
    dataType: 'json', 
    success: function(data) { 
     var jsonvar = $.parseJSON(data); 
     //your code here! 

    } 
}); 

我會警告:將異步設置爲false會導致瀏覽器在調用需要很長時間時顯示爲凍結,但會阻止任何其他JavaScript或jQuery代碼執行,直到調用完成並裝載數據(假設調用爲成功)。

+0

jqueryrocks你當然會爲你做搖滾merci beaucoup! – wmitchell