2014-08-27 21 views
0

我目前正在嘗試解決一些問題,使用大量自定義組件構建SPA,並在各處借用大量信息。以異步方式將設置文件添加到前端Web應用程序

我目前面臨的挑戰是使用設置文件初始化一些設置(端點URL和排序),以便在每個部署的基礎上進行設置。它是Javascript,因此將它歸類到JSON文件是有意義的。但是,很多邏輯仍然是用這種強烈定義的面向對象方法編寫的,我試圖確定在異步方法中加載此設置文件的最佳方法。

查看堆棧溢出的其他主題,jQuery getJSON方法是一個可行的選擇。但我不清楚它是否仍然基於同步呼叫。此外,如果有異步選項,我想確保在應用程序中觸發任何其他邏輯之前加載該值(而不是在構造函數中初始化任何內容)。

我的假設是否正確? getJSON是最好的方法嗎?代碼如下所示。

var settings = $.getJSON("conf.json"); 
var SearchObject = new Search(settings); 
// Remainder is just a bunch of bind() and on() calls 

回答

0

$ .getJSON只是爲了更詳細的$就呼籲:如果你需要,你可以調整更多的參數,如回調的快捷方式。並且,$ .getJSON與$ .ajax相同

執行異步HTTP(Ajax)請求。

http://api.jquery.com/jQuery.ajax/

0

的的getJSON jQuery的功能是默認異步。

$.getJSON({ 
    url: url, 
    data: data, 
    success: function(data, textStatus, jqXHR){} 
}); 

這是一樣的:

$.ajax({ 
    dataType: "json", 
    url: url, 
    data: data, 
    success: function(data, textStatus, jqXHR){} 
}); 

但是,隨着如果你願意,你可以異步設置爲false AJAX功能。
例如。

$.ajax({ 
    dataType: "json", 
    async: false, 
    url: url, 
    data: data, 
    success: function(data, textStatus, jqXHR){} 
}); 
+0

我聽說過有關jQuery 1.10.x的相互衝突的聲明,其中async:false已棄用。 – 2014-08-27 15:04:08

+0

@CameronKilgore,檢查API頁面 - 「async:...從jQuery 1.8起,對jqXHR($ .Deferred)使用async:false已被棄用;」 – shershen 2014-08-27 15:07:08

相關問題