JQuery шаблоны на стороне сервера

Кто-нибудь пытался использовать шаблоны jQuery (или любые другие шаблоны на основе JavaScript) на стороне сервера с чем-то вроде env.js?

Я подумываю о том, чтобы попытаться выяснить, какие преимущества можно получить, имея возможность отображать идентичные шаблоны на стороне клиента или на стороне веб-приложения, но я надеялся, что кто-то уже может иметь некоторый опыт или знать, что существующий проект выполняет этот. Мне было бы особенно интересно узнать о любых проблемах с производительностью, с которыми я мог бы столкнуться, по сравнению с некоторыми более традиционными шаблонизаторами.

Напомним: кто-нибудь когда-либо использовал шаблоны jquery на сайте сервера? Если да, были ли проблемы с производительностью или другие проблемы, с которыми я мог столкнуться?

3 ответа

env.js не нужно

<plug shameless="true">

Я нахожусь в процессе спецификации и повторной реализации шаблонов JQuery, чтобы они могли использоваться независимо от DOM. См. https://github.com/mikesamuel/jquery-jquery-tmpl-proposal для кода и демонстраций. Спецификация доступна на http://wiki.jqueryui.com/w/page/37898666/Template и гласит:

Текст-ориентированный, а не зависимый от DOM. Статус: Готово. Смотрите раздел 12 реализации. foo${bar} переводится во что-то очень похожее на функцию (данные, опции) { return "foo" + bar; } по модулю какой-то заглубления бара

...

Это позволит использовать этот шаблонизатор в среде javascript на стороне сервера, такой как node.js или java/rhino.

Я хотел бы получить обратную связь и могу помочь вам начать.

</plug>

Мой друг, работавший над распределенным проектом по генетическому программированию, использовал систему шаблонов на стороне js sevrer для управления всеми веб-работниками, появляющимися во всех браузерах пользователей. Его код здесь: github. Я не знаю, насколько это будет полезно, но я знаю, что это было довольно просто реализовать и сделать некоторые удивительные вещи. Насколько легко он нашел это, я бы порекомендовал систему шаблонов JS это.

Довольно просто написать код на стороне сервера для обработки шаблонов jQuery.

Вот некоторый очень простой код vb.net, который я создал, который будет возвращать результат строки шаблона jquery в массив любых объектов. В настоящее время это только замена значений данных

Public Shared Function RenderTemplate(template As String, list As Array) As String
    Dim myRegexOptions As RegexOptions = RegexOptions.Multiline
    Dim myRegex As New Regex(strRegex, myRegexOptions)
    Dim splits = myRegex.Split(template)
    Dim matches = myRegex.Matches(template)

    Dim i As Integer = 0
    Dim swap As Boolean = False
    Dim str As New StringBuilder
    For Each item In list
        swap = False
        For i = 0 To splits.Length - 1
            If swap Then
                str.Append(CallByName(item, splits(i), CallType.Get, Nothing))
            Else
                str.Append(splits(i))
            End If
            swap = Not swap
        Next
    Next
    Return str.ToString
End Function

Так что, если я отправил в следующем...

Dim strTargetString As String = "<p><a href='${Link}'>${Name}</a></p>"
Dim data As New Generic.List(Of TestClass)
data.Add(New TestClass With {.Link = "http://stackru.com", .Name = "First Object"})
data.Add(New TestClass With {.Link = "http://stackexchange.com", .Name = "Second Object"})
Return Render(strTargetString, data.ToArray)

Это вывело бы это как строка

<p><a href='http://stackru.com'>First Object</a></p>
<p><a href='http://stackexchange.com'>Second Object</a></p>

Это будет работать намного быстрее, чем порождение поддельного объекта браузера на сервере, и запуск всей библиотеки jQuery только для замены нескольких тегов.

Другие вопросы по тегам