【发布时间】:2019-02-05 11:09:41
【问题描述】:
我需要在我的 HTML 页面中包含一个 JavaScript 对象 (JSON)。
在服务器上呈现页面 HTML 的同时呈现 JSON。使用 AJAX 调用不检索数据。
我可以想到两种方法,并寻求反馈和建议。
将 JavaScript (JSON) blob 与页面一起传递的良好做法是什么?
选项 1
HTML:
<script type='text/javascript'>
var model = { <JSON> };
</script>
.js:
function doSomething() { <use this.model here> }
选项 2
HTML:
<script type='text/javascript'>
loadModel({<JSON>});
</script>
.js(包含在 html 文件的顶部):
var model = null;
function loadModel(model) { this.model = model; }
function doSomething() { <use this.model here> }
变体 JSON 可以存储在单独的 .js 文件中,而不是在 HTML 中包含 JSON。有没有 cmets 这样做?
选项 1 让您可以在任何地方包含 .js 文件,并且将其包含在页面底部使其渲染速度更快(好事),但由于 JavaScript 在页面上渲染模型,这使其成为一个有争议的问题。仍然不依赖于 .js 包含的位置,使其不易出错。
R# 也(合理地)抱怨模型未初始化。
选项 2 感觉更好(一方面它更好地封装了细节),但在调用 loadModel 之前必须包含 .js。
我已经看到并做过两种方式,但没有注意到一种方式比另一种方式有任何显着优势。
服务器平台应该是无关紧要的,但它是 IIS 7.5/ASP.NET MVC 3/Razor
【问题讨论】:
-
我会选择您的选项 1(假设您控制 JSON 并且不必担心安全性)。保持简单。
标签: javascript json