Использование текстовых / HTML-шаблонов JavaScript в производственном коде - PullRequest
0 голосов
/ 01 сентября 2010

Кто-нибудь реализовал микро-шаблон Джона Ресига в рабочем коде?В частности, я хотел бы знать, вызвало ли встраивание шаблонов с <script type="text/html"> какие-либо проблемы.

Немного больше информации: вот что меня беспокоит:

  • Мои пользователи в основном работают в корпоративных средах - может необычный прокси-сервер искажает или удаляет шаблоны
  • Кажется, что встроенные шаблоны не проходят проверку W3C.Что, если, например, следующая версия IE решит, что она им не нравится?

Ответы [ 4 ]

1 голос
/ 01 сентября 2010

Я отказался от встраивания шаблонов через теги сценариев, так как мой слой представления создавал бы избыточные дубликаты шаблонов сценариев.Вместо этого я поместил шаблоны обратно в JavaScript в виде строки:

var tpl = ''.concat(
    '<div class="person">',
        '<span class="name">${name}</span>',
        '<span class="lastname">${lastName}</span>',
    '</div>'
);

Я использовал трюк concat строки, чтобы сделать строку шаблона читабельной.Существуют различные варианты трюка, такие как соединение массива или просто аддитивная конкатенация.В любом случае встроенные шаблоны сценариев работают и работают хорошо, но в слое вида php / jsp / asp есть вероятность, что вы создадите избыточные дубликаты шаблонов сценариев, если не будете выполнять еще больше работы, чтобы избежать этого.эти шаблоны становятся довольно сложными, чем больше логики вы должны добавить к ним, так что я посмотрел дальше и нашел mustache.j s, который imo.намного лучше и сохраняет логику (условия и определения динамических переменных) в области JavaScript.

Другой вариант - получить строки шаблона через ajax, и в этом случае вы можете поместить каждый шаблон в его собственный файл и простопредоставить расширение .tpl.Единственное, о чем вам нужно беспокоиться, это обратный запрос http, который не должен занимать слишком много времени для небольших файлов .tpl и является imo.достаточно незначительный.

1 голос
/ 01 сентября 2010

Хотя я не использовал микро-шаблонизатор @ jeresig, я все же бросил свой собственный, который использует &lt;script type="text/html"&gt;.Я использовал его на нескольких (хотя и базовых) производственных площадках без проблем. HTML5 spec сам по себе относится к чему-то похожему (ближе к концу раздела, на который я ссылался).AFAIK блок выполняется только тогда, когда тип MIME является распознанным типом сценария, в противном случае блок является только частью документа.

0 голосов
/ 01 сентября 2010

Если вы используете jQuery, я могу вместо этого рекомендовать шаблоны jQuery:

http://github.com/nje/jquery-tmpl

Я думаю, что он должен быть официально представлен в jQuery 1.5

Кстати.Я думаю, что и скрипт Resigs, и шаблоны jQuery основаны на использовании innerHTML, поэтому, пока это работает в вашем браузере, вы должны быть в порядке.

0 голосов
/ 01 сентября 2010

У меня на самом деле, и это прекрасно работает.Хотя только для браузеров с поддержкой webkit, поэтому не могу поручиться за других.Но каких проблем вы ожидаете?Подход прост, и я не могу думать о том, как он может сломаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...