当我们在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
此更改是否会导致页面加载速度比之前的方法更快?
答案 0 :(得分:1)
使用模块dojo/text
在应用程序中加载HTML文件(模板)时,会发出网络请求以获取HTML文件。
因此dojo/text
在开发者模式下会增加一些网络开销。在这种环境下,这不是一个真正的问题。
但是当您在生产中发布应用程序时,您应该考虑构建它。
dojo构建过程会自动将所有HTML文件作为字符串存储在图层中(一个图层是一个JS文件,可能是构建过程的一个输出),因此您将导出所有对HTML文件的请求,因此他们的网络请求。
答案 1 :(得分:0)
我认为将templateString直接作为字符串声明给窗口小部件并且不通过dojo / text模块加载它会更快一点,因为它不必加载另一个文件。