2009-02-06 4 views
2

Прежде всего, я единственный человек, использующий JSONML? И, во-вторых, вы бы рекомендовали использовать JSONML для вставки динамического HTML или более эффективного InnerHTML?JSONML против InnerHTML против?

+0

Мне нужно было посмотреть, что такое JSONML, и после того, как он его просмотрел, мне остается вопрос: в чем смысл? – cletus

+1

Это похоже на XML-литералы для javascript - например, E4X с более громоздким синтаксисом - но он работает во всех браузерах, тогда как E4X пока не поддерживается везде – Bret

+0

Я не вижу, как вы можете бить настройку innerHTML для быстрого обновления. что бы «использовать JSONML для вставки динамического HTML»? –

ответ

3

Условно, что (в IE) не каждый внутреннийHTML доступен для записи (innerHTML не является стандартным компилятором в любом случае). Таким образом, вы приближаетесь к добавляющим узлам, а не вставляете html, лучше вы. Насколько я вижу, jsonml thingie создает элементы DOM, которые хороши. Я могу только предложить вам большой набор данных, вставить его двумя разными способами и замерить производительность самостоятельно.

1

JsonML и связанные библиотеки (templating и т. Д.), Как представляется, предлагают эффективный способ генерации динамического HTML на стороне клиента.

Когда я говорю об эффективности, я имею в виду, я имею в виду, что программист не теряет времени и усилий, выполняя свою задачу. Но я не уверен, что вы хотите спросить, работает ли innerHTML быстрее и требует меньше ресурсов на стороне клиента.

2

В то время как поверхностно используемые для выполнения подобных задач, JsonML и innerHTML - совсем другие звери.

innerHTML требует, чтобы у вас была вся разметка точно так, как вы хотите, чтобы она была готова к работе, а это означает, что либо сервер выполняет разметку, либо выполняет дорогостоящие конкатенации строк в JavaScript.

JsonML открывает дверь для шаблонов на стороне клиента через JBST, что означает, что ваш шаблон преобразуется из разметки HTML в шаблон JavaScript во время сборки. Во время выполнения вы просто поставляете данные, и в итоге вы вставляете элементы DOM для вставки или для замены существующего элемента (что-то внутреннееHTML не может легко обойтись без дополнительного создания DOM). Для переподключения требуется только запрашивать дополнительные данные, а не всю переделанную разметку. Это может привести к увеличению производительности, поскольку разметку можно запросить/кэшировать отдельно от данных.

Для простоты, innerHTML был предпочтительным методом для стиля шаблона HTML-сообщения Ajax. Но такие наборы инструментов, как JsonFx, могут использовать JsonML и JBST так же просто, как и при создании шаблона Ajax на основе шаблонов браузера.

Смежные вопросы