Incluye tus Archivos JS y CSS Cuando los necesites

ACTUALIZACIÓN:

He modificado la libreria y la simplifique mucho mas pueden revisarla en esta dirección:

Include en Javascript

Bueno pues no se si a alguno de ustedes les ha surgido el problema de que su sistema esta demasiado cargado al inicio de archivos javascript y css que realmente solo lo utilizan ciertos módulos, pues a mi hace unos meses me surgió ese problema e investigando me puse a trabajar en una libreria que cargara los archivos Javascript mediante el DOM simplemente llamando a un método. La libreria fue basada en este artículo de Sentido Web y en este otro de phpied. El código es el siguiente:

  1. var ScriptLoader = {
  2. //Método a llamar para cargar el script
  3. loadScript: function(file,opt) {
  4.  
  5. if(typeof opt!=“object”) opt = {};
  6. if(opt.id==undefined) opt.id = “js_”+file;
  7.  
  8. id=opt.id;
  9. var head = document.getElementsByTagName(‘head’).item(0)
  10. var scriptTag = document.getElementById(id);
  11.  
  12. //Si no se quiere cache se genera un número aleatorio
  13. if(opt.cache==false){
  14. var milisegundos = new Date().getTime().toString();
  15. if(file.indexOf(“?”)!=-1) file = file+“&”;
  16. else file = file+“?”;
  17.  
  18. file = file+milisegundos;
  19. }
  20.  
  21. if(scriptTag) return;
  22.  
  23. script = document.createElement(’script’);
  24. script.src = file;
  25. script.type = ‘text/javascript’;
  26. script.id = id;
  27. head.appendChild(script);
  28.  
  29. //Para IE
  30. script.onreadystatechange = function () {
  31. if (script.readyState == ‘complete’) {
  32. if(typeof opt.oncomplete == “function”) {
  33. opt.oncomplete();
  34. }
  35. }
  36. }
  37. //Para Firefox
  38. script.onload = function () {
  39. if(typeof opt.oncomplete == “function”) {
  40. opt.oncomplete();
  41. }
  42. }
  43.  
  44. return;
  45. },
  46. unloadScript: function(id){
  47. var head = document.getElementsByTagName(‘head’).item(0)
  48. var scriptTag = document.getElementById(id);
  49. if(scriptTag) head.removeChild(scriptTag);
  50. return;
  51. },
  52. loadCSS:function(file,opt){
  53. if(opt==null) opt = {};
  54. if(opt.id==undefined) opt.id = “css_”+file;
  55. id=opt.id;
  56.  
  57. var head = document.getElementsByTagName(‘head’).item(0)
  58. var scriptTag = document.getElementById(id);
  59.  
  60. if(scriptTag) return;
  61. //Si no se quiere cache se genera un número aleatorio
  62. if(opt.cache==false){
  63. var milisegundos = new Date().getTime().toString();
  64. if(file.indexOf(“?”)!=-1) file = file+“&”;
  65. else file = file+“?”;
  66.  
  67. file = file+milisegundos;
  68. }
  69. css = document.createElement(‘link’);
  70. css.rel  = ’stylesheet’;
  71. css.href = file;
  72. css.type = ‘text/css’;
  73. css.id = id;
  74. head.appendChild(css)
  75. return;
  76. },
  77. unloadCSS:function(id){
  78. var head = document.getElementsByTagName(‘head’).item(0)
  79. var scriptTag = document.getElementById(id);
  80. if(scriptTag) head.removeChild(scriptTag);
  81. return;
  82. }
  83. }

La forma de uso es simple, solo incluyen el archivo scriptloader.js al principio de su página

  1. <script src=“http://ruta/a/scriptloader.js” type=“text/javascript”></script>

Y para incluir el archivo se llama de la siguiente forma:

  1. ScriptLoader.loadScript(“http://ruta/al/archivo.js”,{cache:false, oncomplete: function(){alert(‘Probando carga de archivo’)}});

Los parámetros son opcionales y pueden ser los siguientes:

  • id: especifica una id para el archivo, si se deja nulo el script le asigna una id del tipo js_archivo
  • cache: true o false. Si se especifíca en false la libreria le asignara un ?random al final de manera que el archivo siempre se renueve al momento de cargar la pá
  • onComplete: esto nos permite indicarle algun evento al momento de que el script se cargue en su totalidad

De la misma manera para incluir un archivo CSS es necesario escribir:

  1. ScriptLoader.loadCSS(“http://ruta/al/archivo.css”);

Bueno pues espero que les sirva este aporte (no pretendo reinventar el hilo negro).

Pueden descargarlo aquí

Ver Demo

Saludos…

¿Te pareció interesante la nota?, registrate a nuestro Feed para que estes al dia con las últimas notas que publicamos en WebAdictos, tambien te invitamos a explorar nuestros archivos tal vez encuentres notas y recursos que te sean de utilidad.

Si lo prefieres puedes utilizar el botón de post aleatorio para ir saltando entre nuestros contenidos.
Gracias por visitarnos.

14 Comentarios para “Incluye tus Archivos JS y CSS Cuando los necesites”

« Antiguos
Nuevos »
  1. Efecto de Marquesina Hacia Arriba En Javascript

    [...] Incluye tus Archivos JS y CSS Cuando los necesites [...]

  2. Include en Javascript

    [...] un tiempo ya habia publicado un script que incluia archivos javascript y css mediante el DOM, y ahora debido a un proyecto que realize la simplifique un poco, al fin y al cabo lo que se busca [...]

  3. Actualidad, Entretenimiento y Humor » Include en Javascript

    [...] un tiempo ya habia publicado un script que incluia archivos javascript y css mediante el DOM, y ahora debido a un proyecto que realize la simplifique un poco, al fin y al cabo lo que se busca [...]

  4. Jonathan

    Es curioso no ver comentarios de desarrolladores, acerca del funcionamiento de esta librería, en todo caso, a mi no me funciona con el todos deseáramos no existiera, IE.

  5. dmedina

    Hola Jonathan porque no te funciona?? algun error en particular? tambien te comento que ya existe una “nueva versión” de la libreria es mucho mas sencilla de utilizar te paso la liga:

    http://www.webadictos.com.mx/2007/11/14/include-en-javascript/

    Saludos

Leave a Reply


Recibir Artículos Por Email

 

Entradas Recientes