Github应该用作javascript库的CDN吗?

时间:2011-03-31 15:43:05

标签: javascript performance hosting

从CDN而不是您自己的服务器提供javascript库具有巨大的优势。减少服务器的工作量,CDN可能会比服务器更接近用户,但最重要的是用户的浏览器很可能已经从该URL缓存了它。最后一个意味着每个人的总工作量减少,所以它显然是一个全面的胜利,并且更有可能我们(开发人员)更多地依靠CDN来为我们的javascript服务。

但是流行的javascript CDN(谷歌,微软,其他?)只托管少量文件。对于其他人,我们可以选择自己托管它们,或者......使用源代码控制服务器作为一种CDN。 Github或类似网站不太可能具有针对全球服务进行优化的地理分布式文件缓存。但是,如果这是常见的做法,那么用户的浏览器就有可能将其缓存。从我们的服务器到github的卸载工作的论点只有在Github愿意自愿这样做的情况下才有效。

那么,这是常见的做法吗?我们应该互相鼓励这样做吗? Github介意吗?他们是否有正式的政策?

5 个答案:

答案 0 :(得分:90)

如果您关心性能或IE9兼容性,则不应对JavaScript文件执行此操作。

GitHub不会使用远期过期标头提供其“原始”文件。如果没有跨站点缓存的可能性,您将失去使用公共CDN托管JavaScript的最大好处。实际上,在每个用户第一次请求文件后,使用GitHub作为CDN将比在自己的服务器上简单地托管文件要慢(假设您在服务器上正确配置了缓存)。

另一个问题是GitHub不提供带有与文件实际MIME类型匹配的内容类型标头的“原始”文件。在IE9(可能还有其他浏览器/代理/防火墙/等)中,默认情况下会阻止未使用正确内容类型提供的JavaScript文件。您可以在BlockUI演示页面上看到该操作,例如:

enter image description here

答案 1 :(得分:17)

链接到GitHub“原始”文件存在Dave Ward's answer概述的一些问题。

我建议您查看GitHub页面作为选项。

阅读本文:
GitHub as a CDN. Cache your Javascripts, Stylesheets and Web Assets with GitHub Pages.

答案 2 :(得分:11)

这是recently asked in github's support forums,官方的回答是没关系。

话虽如此,我同意其他答案:github从未真正意味着成为CDN,而谷歌和微软则拥有特定的基础设施。

答案 3 :(得分:10)

原型/个人用品很好,但对于制作我会看:

http://www.cdnjs.com/

http://cachedcommons.org/ - 不再可用

答案 4 :(得分:-2)

我现在已经做了好几个月了,首先考虑了一些问题,但如果您的文件没有公开可用,那就太酷了,如果您愿意,请使用缩小版本。

但仍然 - Google& MS统治jQuery&的空间jQuery模板 - 所以我使用它们。