包括本地与远程 javascript 库

2024-03-15

我正在使用 jsSHA 1.3.1在这里下载 https://github.com/Caligatio/jsSHA/downloads并用于我的本地主机上的学习项目。它给出的结果与我通过引用遥控器获得的副本略有不同,如下所示:

<script src="https://raw.github.com/Caligatio/jsSHA/master/src/sha1.js"></script>

现在,远程复制对我来说效果很好,感谢 @Andreas 的出色回答here https://stackoverflow.com/questions/13671632/jssha-cryptojs-and-openssl-libraries-giving-different-results.

但这给我留下了一个新问题:包含副本与引用远程 js 库的理由是什么?这是否就像“供应”库一样,使我的应用程序免受代码后续更改的影响?


如果您的应用程序可在 WWW 上使用,则应考虑使用众所周知的外部 URL。


<script type="text/javascript"
   src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js">
</script> 

下面的示例从 google 服务器获取 jquery 1.8.0 的缩小版本。


  • 这种方法获得的好处来自于缓存:

  • 您不希望潜在用户第一次访问您的网站时速度缓慢且令人失望。如果您的第一次访问者访问了我的网站,该网站使用此 jQuery URL,她的浏览器可能会缓存它,因此不需要加载它。

  • 使用不可变的版本化资源(jquery/1.8.0,而不是 jquery/current 之类的资源)既可以帮助开发人员不必跟踪其生产代码中的重大更改,又可以确保这些资源可以被缓存。

  • 如果必须下载资源并且 URL 托管在 CDN 上,您可能会获得较低的延迟,因为资源可能会从更靠近用户网络的服务器加载。示例中的 URL 托管在 Google 托管库上,该库是 CDN。看https://developers.google.com/speed/libraries/devguide https://developers.google.com/speed/libraries/devguide了解更多信息。

  • 在此类讨论中经常出现的另一个论点是,当必须下载资源时,如果该资源不在您自己的服务器上,并且由于浏览器限制,您的页面还包含 10 个以上资源,那么您将能够获得更好的客户端资源加载并行性自己从同一服务器加载少量(在现代浏览器中大约为 6 个)资源。

  • 如果您的互联网范围内的 Web 应用程序对安全至关重要,则您必须尽可能多地控制它,以便安全地管理(静态不可变或几乎不可变的资源相对容易安全管理)。

  • 如果我的银行通过 HTTPS 运行的电子银行应用程序要依赖 Google 的 HTTP 服务器提供服务,那么它既会授予 Google 对其电子银行应用程序的客户端部分的权限,又会消除 HTTPS 连接的几乎所有好处。它的服务器。流氓客户端脚本几乎没有做不到的事情......

  • 如果您的应用程序是在本地访问的,那么您可能应该将其包含在您的应用程序中,以兼顾性能(在延迟和带宽方面,访问您的服务器应该比访问某些远程服务器更快)和可靠性原因(您不依赖在外部互联网连接以及正在启动和运行的远程服务器上)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

包括本地与远程 javascript 库 的相关文章