2009-02-05 32 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的通过您的后端代码生成。

真的,答案是“它取决于” - 你能给出更多的细节吗?

相关问题