如果" http"是否有性能差异?是否附加在CDN电话上?

时间:2014-05-06 23:52:58

标签: javascript jquery twitter-bootstrap

我正在为jQuery和Bootstrap创建一个本地静态站点并附加CDN脚本链接。

我注意到它不会连接并且必须在src属性中添加http:前缀(我认为在本地需要)。一旦我将网站投入生产并留下前缀,是否存在性能差异?

2 个答案:

答案 0 :(得分:3)

只有当https涉及页面时才会有问题,因为http的任何内容都会标记安全警告。由于您从另一台服务器请求外部文件,因此需要协议名字对象(如您所见)

要使请求协议不可知,请执行以下操作:

<script ..... src="//cdn.domain.com/file.ext" >

最干净的解决方案是运行本地Web服务器(允许您利用HTTP资源约定和协议无关的资源)。在OSX上,您可以使用以下命令启动简单的http服务器

> cd /path/to/project/folder
> python -m SimpleHTTPServer 8080

答案 1 :(得分:2)

如果链接或脚本中的绝对URL以//开头,则表示它应使用与当前页面相同的协议。

如果您指定 http (或 https )协议,则强制浏览器使用该协议检索该资源。

如果使用安全连接下载页面,并且页面中有一个JS或CSS资源需要按正常 http 下载,那么大多数浏览器都会生成安全警告。因此,如果让URL省略协议并以//开头,则可以在http页面上快速启动(因为 http https 更快) ,并且在https页面上仍然是安全的(所以没有浏览器警告)。

问题在于,如果您使用的协议不同于http或https(最明显的是本地文件系统file:的协议,即当您在硬盘中打开HTML文件时),那么它将会无法找到资源,因为使用与主页面相同的协议,它将尝试在本地文件系统中查找资源,该资源很可能不包含该资源,从而导致错误。