2011-11-19 20 views
6

Estaba buscando el código fuente SO para ver cómo están haciendo el div en la barra lateral derecha que cambia de posición relativa a fija.¿Cómo incluye Stack Overflow los archivos Javascript?

vi que la biblioteca SO JS es más o menos todo incluido en la página con el código de abajo ...

Mi pregunta es ¿cómo es el código que se incluye como este, esto es algo como el RequireJS o labJS Javascript código que carga los archivos solo cuando son necesarios o algo así?

<script type="text/javascript"> 
StackExchange.using.setCacheBreakers({ 
    "js/prettify-full.js": "0324556b7bf7", 
    "js/moderator.js": "a38ca3c6143d", 
    "js/full-anon.js": "8fcefa158ad3", 
    "js/full.js": "a168b3deac0f", 
    "js/wmd.js": "688233b2af68", 
    "js/third-party/jquery.autocomplete.min.js": "e5f01e97f7c3", 
    "js/mobile.js": "97644ef9b7d4", 
    "js/help.js": "7f83495f785a", 
    "js/tageditor.js": "75954ba7b6f1", 
    "js/tageditornew.js": "9d9998359a54", 
    "js/inline-tag-editing.js": "364e12111b4b", 
    "js/mathjax-editing.js": "a47e02eb0282", 
    "js/revisions.js": "63c88065da1f" 
}); 
</script> 
+9

Me parece una pregunta válida – Sarfraz

+0

¿Ya ha intentado analizar el código fuente? http://jsbeautifier.org se puede usar para desminificar el código. El código fuente está disponible en http://cdn.sstatic.net/js/stub.js?v=e922af98260a. ** Código de-minified: http://pastebin.com/W5ynGRNS** –

+0

@Rob W Sí, el código anterior es la versión embellecida, todavía estoy aprendiendo Javascript, así que puedo seguirlo de alguna manera, pero no sé lo suficiente como para darme cuenta qué o cómo está incluyendo los archivos – JasonDavis

Respuesta

8

Mi pregunta es ¿cómo es el código que se incluye como este, es este algo así como los RequireJS o labJS código JavaScript que carga los archivos sólo cuando se necesitan o algo por el estilo?

Sí, pero no es una de las dos – es una pequeña solución local. El fragmento que publicó solo le permite al JavaScript saber qué interruptores de caché usar si incluye un archivo; en realidad no los incluye. Eso solo ocurre cuando el archivo es realmente necesario.

Escribí un blog post que da una idea de lo que está sucediendo allí.

+0

gracias, voy a darle una lectura – JasonDavis

+0

@balpha genial! Me gustaría usar la función "loadScript", ¿está registrada? – shadesco

+0

@shadesco: en todo caso, está bajo la misma licencia que jQuery (MIT/GPL a su elección), ya que de ahí proviene. – balpha

Cuestiones relacionadas