Con una sola aplicación, donde se cambia el hash y carga y cambiar sólo el contenido de la página, estoy tratando de decidir sobre la forma de gestionar el código JavaScript que cada " página "podría necesitar.mejores prácticas de gestión de código JavaScript en una aplicación de una sola página
Ya tengo un módulo de historial que supervisa el hash de ubicación que podría verse como domain.com/#/company/about
, y una clase de página que usará XHR para obtener el contenido e insertarlo en el área de contenido.
function onHashChange(hash) {
var skipCache = false;
if(hash in noCacheList) {
skipCache = true;
}
new Page(hash, skipCache).insert();
}
// Page.js
var _pageCache = {};
function Page(url, skipCache) {
if(!skipCache && (url in _pageCache)) {
return _pageCache[url];
}
this.url = url;
this.load();
}
La memoria caché debe permitir que las páginas que ya se han cargado omitan el XHR. También estoy almacenando el contenido en un documentFragment, y luego extrayendo el contenido actual del documento cuando inserto el nuevo Page
, por lo que el navegador solo tendrá que generar el DOM para el fragmento una vez.
Se puede perder la caché si la página tiene datos confidenciales.
Esto es lo que necesito ayuda para tomar una decisión: Es muy probable que cualquiera de las páginas que se carguen tenga su propio JavaScript para controlar la página. Por ejemplo, si la página usará pestañas, necesita una presentación de diapositivas, tiene algún tipo de animación, tiene una forma Ajax o lo que sea que tenga.
¿Qué es exactamente la mejor manera de ir alrededor de la carga que JavaScript en la página? Incluir las etiquetas de script en el documento Fragmento que obtengo del XHR? ¿Qué pasa si necesito omitir el caché y volver a descargar el fragmento? Siento que el mismo JavaScript que se llama por segunda vez puede causar conflictos, como volver a definir las mismas variables.
¿La mejor manera de ser para unir las secuencias de comandos para la cabeza cuando se agarra el nuevo Page
? Eso requeriría que la página original conozca todos los recursos que cualquier otra página podría necesitar.
Y además de conocer la mejor manera de incluir todo, a que no tenga que preocuparse por la gestión de memoria, y las posibles fugas de carga tantas diferentes bits de JavaScript en una sola instancia de página?
¿Qué es una aplicación de una sola página? –
Donde carga en la primera página desde el servidor y todo lo demás usa XHR, en lugar de solicitudes de página completa. Facebook es un ejemplo. – seanmonstar
jQuery es tu amigo. Cómprelo una bebida. –