2014-05-21 55 views
0
定義

有哪些參數何時使用JSON外部文件如與jQuery的JSON外部文件VS在JS

$.getJSON('external.json',function(data){}); 

(AJAX檢索)與在JavaScript中定義它與

var myJson = { "someVar": { "1": ["test1","test2"], "2": ["test3","test4"]} } 

什麼是「正確」的做法?它取決於JSON長度還是有其他因素可以告訴你使用什麼方法?

我看到它的方式:在加載另一個文件時選擇該文件應該是緩慢的,因爲您通過ajax調用加載數據或將大量行添加到已打包的JavaScript文件中,這不是一件好事。當然,你應該在哪裏使用一個或另一個...應該有一些區別?

我不感興趣,只是在速度差(正從阿賈克斯文件當然慢),而且在其他方​​面,如我應該在某些情況下使用了通常使用時和...

回答

2

的第一個是的縮寫:

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

這是一個Ajax請求,這將需要更多的時間比具有簡單的JSON對象到文件中。 如果可能,我寧願第二個。另外,如果您參加表現良好的表演,第一個表演時間會更長。

時間(加載+解析2檔)>>時間(閱讀JavaScript對象)

+0

謝謝你的回答。我知道第一個只是ajax調用...但仍然:在javascript中定義了150行json並不是一個非常好的和明確的解決方案,或者它是什麼? – trainoasis

+0

這不是問題。你可以把它寫在一行上。我會做什麼:使用coffeescript並使用粘合腳本將一個文件的內容附加到另一個文件。 – Kursion

1

如果你的數據在頁面創建時知道你可能最好使用對象文本,如:

var myJson = {...} 

然而,如提到Kursion,

$.getJSON(...) 

是用於經由AJAX異步檢索JSON數據的速記方法。如果您想要從服務器檢索頁面加載時未知的數據,則可以使用它...

例如,如果用戶在輸入控件中輸入搜索詞,您可能需要在沒有執行整個頁面更新的情況下檢索JSON。你不能簡單地定義一個JavaScript對象,因爲你不知道搜索詞是什麼。