template strings es6 ecmascript javascript dojo

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.