Мне нужно включить объект JavaScript (JSON) в мою HTML-страницу.
JSON отображается одновременно со страницей HTML, отображаемой на сервере.Данные не получены с помощью вызова AJAX.Я могу придумать два способа сделать это, и искать отзывы и рекомендации.
Каковы хорошие практики для передачи BLOB-объектов JavaScript (JSON) со страницей?
Вариант 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 в HTML, JSON может храниться вотдельный файл .js.Любые комментарии по этому поводу?
Вариант 1 позволяет вам включать файл .js в любом месте, а включение его в нижней части страницы ускоряет его рендеринг (хорошо), но, поскольку JavaScript отображает модель на странице,это делает это спорным вопросом.Все еще не зависящий от расположения .js делает его менее подверженным ошибкам.
Также R # жалуется (разумно) на то, что модель не инициализирована.
Вариант 2 чувствует себя лучше (лучше инкапсулирует детали, например,), но .js должен быть включен до вызова loadModel
.
Я видел и делал оба пути, но не заметил каких-либо существенных преимуществ одного способа перед другим.
Платформа сервера должна быть неактуальной, но это IIS 7.5 / ASP.NET MVC 3 / Razor