繁体   English   中英

Javascript模板系统 - PURE,EJS,jquery插件?

[英]Javascript template system - PURE, EJS, jquery plugin?

有人用过javascript模板系统吗? 我曾经使用嵌入JavascriptMVC的那个,但我现在正在进行服务器端开发,所以我想要一个更简化/更薄的版本..

我发现2. 1是EJS,这是JavascriptMVC中包含的部分

http://embeddedjs.com/

另一个是Pure-你可以用jquery

http://beebole.com/pure/index.html

谁有任何经验,或者还有其他我找不到的东西? 也许是一个jquery类型的插件或者什么..

基本上我需要在runtine中的javascript中替换部分HTML文档,而无需调用服务器。

但我的html替换代码需要保存在外部文件中,而不是嵌入在js中

任何帮助真的很感激

谢谢

HAML咖啡。
结合两种最好的元语言。

https://github.com/9elements/haml-coffee

嘿,我用了一两次,这很简单。 这是来自编写jquery的人。

http://ejohn.org/blog/javascript-micro-templating/

这是在jQuery中为Smarty模板语言实现的。 http://www.balupton.com/sandbox/jquery-smarty/demo/

一个令人印象深刻的功能是支持动态更新。 因此,如果更新模板变量,它将更新模板中使用该变量的任何位置。 很漂亮。

您还可以使用onchange事件挂接到变量更改。 因此,当说变量“page”改变时,表示效果或AJAX很有用;-)

如果您有任何机会使用jQuery框架,我可以向您推荐一个名为jQote的插件。 有些人拿走了John Resig的引擎并将其打包成一个插件,这样就可以轻松完成javascript模板操作。

http://aefxx.com/jquery-plugins/jqote

干杯!

如果原型是一个选项, 原型模板是快速和简单的。 如果你真的需要一个jQuery插件,我写了一个端口 (无耻插件)。

我广泛使用了EJS。 来自Rails的背景,它完全符合我的需求,因为它与ERB非常相似。

我推荐它。 它正在积极维护,开发人员反应迅速。 此外,在我运行的基准测试中,它的速度非常快。 我正在将它用于iPhone / Android的移动网站。

对于其他一些人,请查看此博客文章: http//www.viget.com/extend/benchmarking-javascript-templating-libraries/

这是一个独立的定制解决方案,我写的非常小,模仿Prototype的模板系统

var templater = function(template, tokens, tokenIdentifier) {
    tokenIdentifier = tokenIdentifier || "$";
    // Decode HTML encoded template tokens %7B -> {, %7D -> }
    template = template.replace(
        new RegExp("\\" + tokenIdentifier + "%7B(\\w+)%7D", "gi"), 
        tokenIdentifier + "{$1}"
    );

    for ( var i in tokens ) {
        if ( tokens.hasOwnProperty(i) ) {
            template = template.replace(
                new RegExp("\\"+tokenIdentifier+"\\{"+i+"\\}", "g"),
                tokens[i]
            );
        }
    }

    return template;
};

用法:

templater("Hi, my name is ${name}", {name: "Bobo the Clown"});
// The token identifier defaults to $, but can be changed arbitrarily
templater("#{title} #{surname} #{verb} #{noun}", {title: "Dr.", surname: "Amazing", verb: "packed", noun: "sand"}, "#");

输出:

Hi, my name is Bobo the Clown
Dr. Amazing packed sand

我同意Jage。

http://ejohn.org/blog/javascript-micro-templating/非常简单,实施起来很快。 您无需做大量工作即可获得良好的结果。

看看hacktl.js http://code.google.com/p/hacktl/ 轻巧简单

到目前为止, Mustache.js对我来说效果很好。 它也适用于许多服务器端语言(Ruby,Python,Clojure等),因此您可以在多个上下文中使用它。

如果您使用的是Script#,您可能需要考虑SharpTemplate ,这是一种强类型,超高效的HTML模板引擎。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM