Includere dinamicamente files .js



Utilizzando tanto javascript nei siti cosidetti '2.0' a volte si tralascia un particolare: si lavora tanto per ottimizzare e alleggerire il peso in Kb delle pagine e poi spesso si includono file .js contenenti le funzioni in javascript di parecchi Kb, che vanno in ogni caso a pesare sulla pagina e sui tempi di caricamento. Naturalmente, per comodita', la prassi e' includere i file .js in una sezione del sito (solitamente l'header) comune a tutte le pagine e quindi ripetuta su buona parte di esse.

E' possibile tuttavia caricare in maniera asincrona anche i file .js, e quindi includere solo quelli realmente necessari alla pagina che si sta sviluppando. La funzione da utilizzare e' la seguente:
function include(sURI)
{
if (document.getElementsByTagName)
{
if (!hIncludes)
{
hIncludes = {};
var cScripts = document.getElementsByTagName("script");
for (var i=0,len=cScripts.length; i < len; i++)
if (cScripts[i].src) hIncludes[cScripts[i].src] = true;
}
if (!hIncludes[sURI])
{
var oNew = document.createElement("script");
oNew.type = "text
/javascript";
oNew.src = sURI;
hIncludes[sURI]=true;
document.getElementsByTagName(
"head")[0].appendChild(oNew);
}
}
}

(dove 'sURI' e' l'url dal quale caricare il file javascript)

[via]

Published: August 13 2007

  • category: