为什么我讨厌引用第三方 Javascript 的网站

很多网站都喜欢在自己网站里面用到其它网站提供的第三方 javascript 库,比如 jQuery,为什么?因为有些老的教程告诉他:

  1. 第三方镜像网站做了CDN,速度访问会比较快。
  2. 用户很可能已经通过其它也是引用了那个 JS 的另外一个网站访问过它了,再次访问它的时候速度就更快了
  3. 节省自己的带宽流量
  4. 浏览器和服务端都有同一域名下的资源访问并发限制,引用其它网站的 JS 就可以规避这个问题

可我不是很认可以上的理由,因为:

  1. 你的网站的可用性打了折扣,因为使用第三方 JS库,用户需要正常访问你的网站,同时他还必须要能够访问那个第三方网站才行。而当用户只是无法访问那个第三方网站的话,你的网站是挂了(视具体功能而定),而且你几乎还无能为力(有信心那么快修改所有页面里面的引用代码吗?)。
  2. 也许用第三方静态资源会使得用户加载速度快点,但没有那么明显,并且也不是决定性因素。静态资源的加载本来就快,如果你的网站不是放在特别垃圾的线路,这并不会是什么问题。影响网站速度的还是动态内容这部分。
  3. 流量也不重要,如果你的网站本来流量就小,自己提供那些静态资源和用外部引用的区别不大;如果你的网站流量大,那是好事,意味着流量成本绝不是你该头疼的事情。
  4. 不安全,引用的外置 JS可能会被劫持,就像百度的被劫持用作攻击 Github 了一样。
  5. 隐私保护。第三方网站可以借此跟踪用户,也可以拿走本该只属于你自己的网站访问统计信息。
  6. 自己弄几个专门分发静态资源的站点同样更容易解决同源加载的问题。