javascript - strings - Usar plantillas de cadena en lugar de archivos HTML
template string javascript html (2)
Cuando se utiliza el módulo dojo/text
para cargar un archivo HTML (su plantilla) en su aplicación, se realiza una solicitud de red para recuperar su archivo HTML.
Entonces dojo/text
en modo desarrollador agrega un poco de sobrecarga de red. En este entorno, no es realmente un problema.
Pero cuando envía su aplicación en producción, debería considerar construirla.
El proceso de compilación dojo incluirá automáticamente todos tus archivos HTML como una cadena en la capa (una capa es un archivo JS que podría ser una salida de tu proceso de compilación) que estás exportando para eliminar todas las solicitudes de archivos HTML, por lo que sus solicitudes de red .
Cuando creamos nuestros propios widgets en DOJO, le proporcionamos un archivo de plantilla. Y el archivo de la plantilla se carga usando dojo/text
módulo de dojo/text
. La estructura típica del widget es la siguiente:
define([
"dojo/_base/declare",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dojo/text!./templates/SomeWidget.html"
], function(declare, _WidgetBase, _TemplatedMixin, template) {
return declare([_WidgetBase, _TemplatedMixin], {
templateString: template
});
});
La plantilla HTML se ve así:
<div class="someClass">
<div data-dojo-attach-point="titleNode" data-dojo-attach-event="onclick: clickAction">
Sample Content
</div>
</div>
¿Crearía alguna diferencia en términos de rendimiento si proporcionamos templateString
al widget directamente como una cadena y no lo dojo/text
través de dojo/text
módulo de dojo/text
? Me gusta esto:
define([
"dojo/_base/declare",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dojo/text!./templates/SomeWidget.html"
], function(declare, _WidgetBase, _TemplatedMixin, template) {
return declare([_WidgetBase, _TemplatedMixin], {
templateString: "<div class=/"someClass/"><div data-dojo-attach-point= /"titleNode/" data-dojo-attach-event= /"onclick: clickAction/">Sample Content</div></div>"
});
});
¿Este cambio provocaría que la página se cargue más rápido que el enfoque anterior?
Creo que es un poco más rápido con templateString declarado al widget directamente como una cadena y no lo carga a través del módulo dojo / texto porque no tiene que cargar otro archivo.