2009-02-05 31 views
2

我正在尋找關於JSON應該存儲在哪裏的「最佳實踐」,如果它只是一個字符串數組。它應該存儲在HTML頁面的腳本塊中的變量中嗎?是否應將其存儲在HTML以外的JavaScript文件中以進行分離?還是應該將其存儲在插件本身中?存儲將傳遞給jQuery插件的JSON數據的最佳實踐

如果它應該是一個外部js文件,該文件的「最佳實踐」命名方案是什麼?我知道接受的jQuery插件名稱是jquery.plugin.js或jquery.plugin-min.js(用於縮小文件)。

回答

6

要看,如果你需要的JSON馬上可以存儲,隨時隨地把它執行:

<script> var myJsonObj = { ... }; </script> 

如果它是一個大量數據,你不需要數據馬上,你可以隨時對名爲「data.json」的文件進行ajax調用。

對於命名插件名稱,以及它真的取決於你,但是我相信jquery.pluginname.js是這樣做的標準方式。

+0

因此,如果我將它命名爲data.json,我假設我只是使用getJSON來獲取文件? – 2009-02-05 22:10:16

+0

$ .getJSON使用「腳本」標記hack來獲取數據,我認爲這些數據只能用於「跨域」請求。一個簡單的$ .ajax就足夠了。 – 2009-02-05 22:18:54

1

我會第二個sktrdie爲這樣的文件添加擴展名.json。我第一次玩JSON時碰到的一個問題是JSON字符串不是有效的JavaScript文件。

例如,如果我把一個文件與此內容:

{ 
    'foos': 'whatever', 
    'bar': false, 
    'items': [1,2,3] 
} 

爲<腳本>標籤的src,我得到這個錯誤:

Error: invalid label 
Line: 2, Column: 1 
Source Code: 
'foos': 'whatever', 

在過去的我ve實際上隱藏了JSON字符串<divs>或者像這樣跨度:

<div id="jsonStorage" style="display:none"> 
{'foos': 'whatever','bar': false,'items': [1,2,3]} 
</div> 

我也爲此使用了隱藏表單域。

0

如果它是插件的一部分,即默認配置,我會將它存儲在插件文件本身中。如果它是插件的外部配置,則取決於它。它可能是有意義的,將其存儲在HTML的變量,即

<script> 
var myConfig = { 
    "foo" : "bar" 
}; 
</script> 

這可能尤其是如果您需要任何的JSON的通過您的後端代碼生成。

真的,答案是「它取決於」 - 你能給出更多的細節嗎?

相關問題