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]