使用字符串模板而不是HTML文件

时间:2017-03-10 05:12:41

标签: javascript dojo

当我们在DOJO中创建自己的小部件时,我们提供了一个模板文件。并使用.when_pressed模块加载模板文件。小部件的典型结构如下:

raspberry-gpio-python

HTML模板如下所示:

dojo/text

如果我们将define([ "dojo/_base/declare", "dijit/_WidgetBase", "dijit/_TemplatedMixin", "dojo/text!./templates/SomeWidget.html" ], function(declare, _WidgetBase, _TemplatedMixin, template) { return declare([_WidgetBase, _TemplatedMixin], { templateString: template }); }); 直接作为字符串提供给窗口小部件并且不通过<div class="someClass"> <div data-dojo-attach-point="titleNode" data-dojo-attach-event="onclick: clickAction"> Sample Content </div> </div> 模块加载它,它会在性能方面产生任何差异吗?像这样:

templateString

此更改是否会导致页面加载速度比之前的方法更快?

2 个答案:

答案 0 :(得分:1)

使用模块dojo/text在应用程序中加载HTML文件(模板)时,会发出网络请求以获取HTML文件。

因此dojo/text在开发者模式下会增加一些网络开销。在这种环境下,这不是一个真正的问题。

但是当您在生产中发布应用程序时,您应该考虑构建它。

dojo构建过程会自动将所有HTML文件作为字符串存储在图层中(一个图层是一个JS文件,可能是构建过程的一个输出),因此您将导出所有对HTML文件的请求,因此他们的网络请求。

答案 1 :(得分:0)

我认为将templateString直接作为字符串声明给窗口小部件并且不通过dojo / text模块加载它会更快一点,因为它不必加载另一个文件。