Stack Overflow如何引入Javascript文件?

6

我查看了SO的源代码,想看看他们如何将右侧边栏上的div从相对定位变为固定定位。

我发现SO的JS库几乎都被包含在下面的代码中...

我的问题是,这个代码是如何被这样包含的?这是像RequireJSlabJS一样的javascript代码,它只在需要时加载文件或类似的方式吗?

<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
这对我来说似乎是一个合理的问题。 - Sarfraz
你是否已经尝试分析源代码?http://jsbeautifier.org可以用来去除代码的压缩。源代码可在http://cdn.sstatic.net/js/stub.js?v=e922af98260a找到。**去压缩后的代码:http://pastebin.com/W5ynGRNS** - Rob W
@Rob W 是的,上面的代码是经过美化的版本,我还在学习Javascript,所以我可以有点理解它,但我不知道它是如何包含文件的。 - JasonDavis
@Sarfraz 你好,这就是我想的,我试图使它适当。 - JasonDavis
1个回答

8
我的问题是代码是如何包含的,这是类似于RequireJS或labJS JavaScript代码,仅在需要时加载文件,还是类似于那样的东西?是的,但不是其中的任何一个 - 这是一个非常小的自制解决方案。你发布的片段只是让JavaScript知道要使用什么缓存破坏器,如果包括一个文件; 它并没有实际包含它们。只有当文件实际上被需要时才会发生这种情况。我写了一篇博客文章,blog post提供了一些关于正在发生的事情的见解。

@balpha 太好了!我想使用“loadScript”函数,它受版权保护吗? - ccot
如果有什么问题,它的许可证和jQuery一样(MIT/GPL,由你选择),因为它就是从那里来的。 - balpha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接