首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何高效的实现客户端javascript模板部分?

问如何高效的实现客户端javascript模板部分?
EN

Stack Overflow用户
提问于 2011-05-07 19:47:24
回答 1查看 518关注 0票数 2

我想建立自己的,但我不确定最好的方式来做。部分模板是一个模板,它只是另一个较大模板的一部分,可以随意插入到多个其他模板中。模板本身是相当基本的,只是字符串提取和连接,但是客户端的部分参数让我有点困惑。

下面是我想过的几个方法:

1,我可以编写一个javascript助手函数,通过ajax将部分加载到某种形式的本地存储中,所有需要该特定部分的后续模板都将首先在本地存储中查找。我认为这种方法不是很安全,因为本地存储并不总是有保证的。如果我不能将它们保存到本地存储中,分片就会导致过多的ajax调用。

2,我可以将它们全部放入我的主html文件中的脚本标记中。这将工作得相当好,特别是对于head.js (支持脚本标记的并行加载),但我仍然认为每个脚本标记都是对服务器的单独调用,对吧?这并不能完全改善这种情况。

3,我可以将所有的模板放入一个脚本标签(我猜是html ),然后手动过滤掉某种类型的delimiter...like:"# template1 (blabla template1字符串)# template2 (blabla template2字符串),然后把这些字符串放入全局变量中,这只会导致对服务器的一次调用,其余的都是在客户端完成的。

有什么建议吗?我看过现有的模板引擎,但我不能确定它们是如何做到的。代码相当复杂

EN

回答 1

Stack Overflow用户

发布于 2011-05-07 20:54:50

为了规范/重写jQuery模板,我采用了流水线的方式来规范模板调用和按需加载。

请参阅(早期) draft spec的第9节,并查看底部的conformance suite tests以获取自定义按需模板加载的示例(测试用例“主调用和及时加载!”是相关的)。

基本要点是插件加载器(用JS编写)在解析和编译之间进行钩子,以检查解析树。插件传递获取一个对象,该对象映射模板名称以解析树。如果他们看到任何部分模板选择器(套用您的说法),他们可以尝试使用AJAX调用或Node.js上的文件I/O加载任何未解析的模板,并将这些部分添加到输入对象,以使编译器编译刚刚加载的部分以及公共模板。

效率方面,请参阅benchmarks。我正在将代码迁移到github:https://github.com/mikesamuel/jquery-jquery-tmpl-proposal,以防您想要协作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5920819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档