jQuery getScript vs在文件中嵌入脚本

时间:2012-08-28 08:35:20

标签: javascript jquery html getscript

我想知道是否使用jquery的getScript

我有一个jQuery插件,我需要包含在我的网站中,但我不确定该怎么做,我想知道这些方法之间是否存在差异:

就我而言,我必须包含一个相当大的脚本,但仅适用于IE浏览器。此刻我这样做:

if($.browser.msie){
 //minifed code
}

现在我想知道是否:

if($.browser.msie){
 $.getScript('link to minified script');
}

会有什么优点/缺点吗?或者如果它或多或少是相同的东西?

6 个答案:

答案 0 :(得分:3)

最好使用:

if($.browser.msie){
 //minifed code
}

因为.getScript()永远不会缓存文件。

答案 1 :(得分:2)

获取外部脚本会有缺点。

即。 一个HTTP请求

if($.browser.msie){
 //minifed code
}

两次HTTP请求

 if($.browser.msie){
 $.getScript('link to minified script');
}

您的浏览器一般只能处理2个http请求。所以从性能的角度来看,第一个会更快。

进一步说明

使用getScript,IE用户将有一个较小的请求,( - “缩小代码”的大小)。但是每个人都必须每次下载外部脚本(+外部脚本的大小*页面请求数)+由于额外的HTTP请求而导致响应延迟。

使用缩小的代码,每个人都必须下载您的迷你代码的大小(+缩小的代码大小)。

假设您的迷你代码是5K并且被访问10次意味着:

IE GetScript:

(5K * 10)+使用第二个HTTP请求的性能= 50K +

非IE

<强> 0

/////////////////////////////////////////////// /////////

IE nonGetScript

<强> 5K

非IE

<强> 5K

答案 2 :(得分:1)

这是两件完全不同的事情。 在一种情况下,您将脚本嵌入到页面中,以便可以立即访问它,并且您不需要任何其他代码来验证它是否可用。 但是,在第二种情况下,您将脚本作为外部资源加载,这意味着可能存在需要处理可能的通信错误,脚本错误等错误的情况。

答案 3 :(得分:1)

两种方法之间存在差异。 嵌入的第一种方法是下载整个脚本,即使浏览器不是ie。它会增加页面大小,从而加载页面性能的开销。

第二个apporach会更好,只有当需要时才从外部js文件加载脚本,这意味着只有当浏览器是IE时。因此,其他浏览器的性能会更好。

你还提到脚本非常大。因此,最好将该脚本包含在外部js文件中。由于这些文件在客户端机器中缓存,从而增加了性能。无需一次又一次地获取

答案 4 :(得分:0)

因此,根据您source所需的drill down a bit,您可以看到getScript正在为您添加脚本标记,因此没有区别。除了(小)处理启动jQuery并处理添加脚本元素的JavaScript之外。我认为最大的区别在于它允许您以编程方式注入脚本标记,以便您可以像浏览器测试一样添加逻辑。

答案 5 :(得分:0)

不需要在文件中嵌入脚本,具有其他浏览器的用户不应该获取它。 $.getScript只是与$.ajax dataType的{​​{1}}的简写,因此它只是加载脚本并执行它。