Estoy construyendo un sitio web en el que hubiera sido conveniente poder utilizar inclusiones dinámicas. El sitio es todo ajax (sin recargas de página) y aunque las llamadas de retorno JSON de datos puros no lo necesitaban, todos los diferentes contenidos html para cada subparte de aplicación diferente (ventana/panel/área/formulario, etc.) me parece mejor estar en diferentes archivos.
Mi idea inicial era hacer que la llamada ajax volviera al archivo principal "hub central" (que quita la aplicación en primer lugar), que luego sabría qué subarchivo incluir. ¡Simplemente incluir todos los archivos no funcionaba después de darme cuenta de que cada llamada para una pieza posiblemente pequeña tendría que analizar todo el código ASP de todo el sitio! Y usar el método Execute no fue bueno, tanto en términos de velocidad como de mantenimiento.
Resolví el problema al hacer que las supuestas páginas "secundarias" fueran las páginas principales, e incluir el archivo "concentrador central" en cada una. Básicamente, es un javascript de ida y vuelta incluido.
Esto es menos costoso de lo que parece, ya que la idea de una página web es que el servidor responda a las solicitudes de los clientes para "la página siguiente" todo el tiempo. El contenido que se solicita se define en el alcance de la página que se llama.
El único inconveniente de esto es que los "elementos web" de la aplicación tienen que vivir parcialmente divididos: la mayor parte de su contenido en un archivo .asp llamado real, pero lo suficiente de su estructura y relación definida en la principal. asp file (de modo que, por ejemplo, un elemento de menú en un elemento web sepa el nombre que se utilizará para llamar o cargar otro elemento web y cómo se debe realizar esa carga). De alguna manera, sin embargo, esto sigue siendo una ventaja sobre un sitio tradicional donde cada página tiene que saber cómo cargar cada otra página. Ahora puedo hacer cosas como "cargar esta parte (ya sea en una página completa o de otra manera) de la misma forma en que quiere que se cargue".
También configuré para que cada parte tenga su propia javascript y css (si solo esa parte necesita esas cosas). Luego, esos archivos se incluyen dinámicamente a través de javascript solo la primera vez que se carga esa parte. Entonces, si la pieza se carga repetidamente, no incurrirá en una sobrecarga adicional.
[4guysfromrolla] (http://www.4guysfromrolla.com/) tiene una muy buena [artículo] (http: // www. 4guysfromrolla.com/ASPScripts/PrintPage.asp?REF=%2Fwebtech%2F022504-1.shtml) en esto. –
Debe buscar en [ExecuteGlobal] (http://msdn.microsoft.com/en-us/library/342311f1 (VS.85) .aspx). Vea el ejemplo 3 en [Usando ExecuteGlobal para incluir el código de VBScript] (http://www.gwmicro.com/Support/Knowledge_Base/?kbnumber=GWKB2035) – loraderon
No obstante, Server.Execute funcionó muy bien para mí al escribir un sistema de Templating dinámico, porque nunca se esperaba que los propios archivos de plantilla añadieran nuevas funciones/per se /. Sin embargo, tuve que insertar un objeto en una Sesión var para pasarlo al archivo "incluido". Así que ... para abreviar, su pregunta fue útil para mí, incluso si nunca obtuvo lo que estaba buscando. :-) –