[英]jQuery templates on the server side
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服务器端模板系统来管理所有用户浏览器中产生的所有Web工作者。 他的代码在这里: 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://stackoverflow.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://stackoverflow.com'>First Object</a></p>
<p><a href='http://stackexchange.com'>Second Object</a></p>
这将比在服务器上生成虚假的浏览器对象更快,并且运行整个jQuery库只是为了替换一些标签。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.