Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与直接包含托管脚本URL相比,使用google.load(';jQuery';,…)有哪些优势?_Javascript_Optimization - Fatal编程技术网

Javascript 与直接包含托管脚本URL相比,使用google.load(';jQuery';,…)有哪些优势?

Javascript 与直接包含托管脚本URL相比,使用google.load(';jQuery';,…)有哪些优势?,javascript,optimization,Javascript,Optimization,Google在以下位置托管了一些流行的JavaScript库: 据谷歌称: 加载库最强大的方法是使用google.load() 使用的真正好处是什么 google.load(“jquery”、“1.2.6”) vs ?它允许谷歌更改URL(但他们无法更改,因为URL方法已经建立) 理论上,如果你做了几个google.load()的操作,google可以将其捆绑到一个文件中,但我认为这并没有实现 它允许您在任何需要的地方访问代码中的库 因为它允许您在javascript中直接切换到库的新版本,

Google在以下位置托管了一些流行的JavaScript库:

据谷歌称:

加载库最强大的方法是使用google.load()

使用的真正好处是什么

google.load(“jquery”、“1.2.6”)

vs


它允许谷歌更改URL(但他们无法更改,因为URL方法已经建立)

理论上,如果你做了几个google.load()的操作,google可以将其捆绑到一个文件中,但我认为这并没有实现

  • 它允许您在任何需要的地方访问代码中的库
  • 因为它允许您在javascript中直接切换到库的新版本,而无需强制您在整个站点上重建/更改模板

  • 您可能只希望在特殊条件下加载库


    此外,google.load方法将加速初始页面显示。否则,如果您在html代码中包含脚本标记,则页面呈现将冻结,直到加载文件为止。

    除了Google能够根据请求将多个文件捆绑在一起的好处之外,使用Google.load没有任何额外的好处。事实上,如果您知道要使用的所有库(比如jquery1.2.6),那么您可能正在让用户的浏览器执行一个不必要的HTTP连接。由于使用谷歌托管的全部目的是减少带宽消耗和响应时间,因此,如果您只使用一个库,最好的决定是直接调用该库


    此外,如果您的站点将使用任何SSL证书,那么您需要通过Google的HTTPS连接调用脚本来计划这一点。从http页面调用https脚本没有坏处,但是从https页面调用http脚本会导致比您想象的更模糊的调试问题。

    我发现它对于测试不同的库和不同的方法非常有用,特别是如果您不习惯它们,并且希望看到它们的差异并排出现,而不必下载它们。这样做的主要原因之一似乎是,与同步脚本调用相比,它是异步的。您还可以获得一些直接包含在google loader中的整洁内容,比如客户端位置。你可以从中得到它们的纬度和经度。不一定有用,但如果你计划有针对性的广告或类似的东西,它可能会有用


    更不用说动态加载总是有用的。特别是为了平滑初始现场荷载。将初始“站点加载时间”保持在尽可能低的水平是每个网页设计师都在进行的一场艰苦的战斗。

    就我个人而言,我感兴趣的是,对于已经加载该库的浏览器来说,缓存是否有好处。似乎如果有人浏览google并加载正确的jQuery库,然后浏览我的网站并加载正确的jQuery库。。。两者都可能使用相同的缓存jQuery。不过,这只是一种推测的可能性


    编辑:是的,至少在使用direct script标记到该位置时,如果有人已经从google调用了javascript库(例如,如果它被另一个站点包含在某处),javascript库将被缓存。

    如果您要编写大量javascript,并且只在特定事件发生时使用该库,您可以等到事件发生时再下载库,这样就避免了那些实际上没有触发事件的人发出不必要的HTTP请求。但是,对于Prototype+Scriptaculous这样的库,它可以下载超过300kb的JavaScript代码,这是不实际的。

    我建议避免使用https,除非您必须。。。当客户端检索HTTPS源与HTTP源时,会对其性能造成轻微影响。。。更重要的是,HTTPS内容通常不会被缓存,因此您错过了缓存好处方面。然而,为HTTPS页面检索HTTP javascript会击败中间人保护-Mallory可以将其恶意javascript注入此HTTP请求,你所有的HTTPS安全性都消失了。HTTP和HTTPS之间的性能差异是如此之小以至于微不足道,我真的不太担心它。@Jonathan:除了HTTP可以缓存之外,HTTPS不能缓存。这很重要,但如果页面已经安全了,可能是值得付出的代价。@b我很确定马洛里是个小妞。我的意思是,正如故事所说。第二个语句是错误的,您仍然需要指定库版本。指定版本“1”将加载可用于版本1的最新版本,例如google.load(“jquery”,“1”);罗伯特:你不需要使用google.load()自动切换到新版本。。。将始终加载版本1的最新更新。@Simon您确实可以使用/1/链接进行jQuery,但在生产环境中这是一个非常糟糕的主意。第一,与特定版本的URL相比,它有一个非常短暂的缓存;第二,您无法控制它何时更改,任何破坏性的更改都可能会在您不知情的情况下破坏您的站点。@LocalPCGuy-是的,完全同意,我从未在生产站点上使用过它。但是,如果出于某种原因,有人希望在开发过程中保持最新版本,则不需要
    google.load()
    。在底部添加脚本标记会有所帮助。