jQuery getScript与在文件中嵌入脚本
jQuery getScript vs Embedding Script in File
我想知道是否使用jquery的getScript。
我有一个jQuery插件,我需要包括在我的网站上,但我不确定该怎么办,我想知道这些方法之间是否有区别:
就我而言,我必须包含一个相当大的脚本,但仅适用于IE浏览器。此刻我是这样做的:
if($.browser.msie){
//minifed code
}
现在我想知道这是不是:
if($.browser.msie){
$.getScript('link to minified script');
}
会有什么优点/缺点吗?或者,它或多或少是一样的东西?
最好使用:
if($.browser.msie){
//minifed code
}
因为CCD_ 1永远不会缓存该文件。
获取外部脚本会有缺点。
即。一个HTTP请求
if($.browser.msie){
//minifed code
}
两个HTTP请求
if($.browser.msie){
$.getScript('link to minified script');
}
您的浏览器通常一次只能处理2个http请求。因此,从性能的角度来看,第一个会更快。
进一步解释
使用getScript
,IE用户将有一个较小的请求,(-您的"缩小代码"的大小)。但其他人每次都必须下载外部脚本(+外部脚本的大小*页面请求数)+由于额外的HTTP请求而导致的响应延迟。
使用缩小的代码,每个人都必须下载你的缩小代码大小(+缩小的代码大小)。
假设你的缩小代码是5K,并且被访问了10次,这意味着:
IE获取脚本:
(5K*10)+使用第二个HTTP请求的性能=50K+
非IE
0
////////////////////////////////////////////////////////
IE nonGetScript
5K
非IE
5K
这是两件完全不同的事情。在一种情况下,您将脚本嵌入到页面中,这样它就可以立即访问,并且不需要任何额外的代码来验证它是否可用。然而,在第二种情况下,您将脚本作为外部资源加载,这意味着在某些情况下,可能需要处理可能的通信错误、脚本错误等。
这两种方法不同。嵌入的第一种方法是下载整个脚本,即使浏览器没有,也会增加页面大小,这会增加页面加载性能的开销。
第二种方法会更好,只有在需要的时候才从外部js文件加载脚本,也就是说只有在浏览器是IE的时候。所以在其他浏览器中性能会更好。
你还提到剧本很大。因此,最好将该脚本包含在外部js文件中。由于这些文件被缓存在客户端机器中,从而提高了性能。无需一次又一次地提取
因此,根据您必须深入了解的源代码,您可以看到getScript正在为您添加脚本标记,因此没有区别。除了启动jQuery和处理添加脚本元素的JavaScript的(小)处理之外。我认为最大的区别是它可以让你以编程的方式注入脚本标记,这样你就可以像浏览器测试一样添加逻辑。
不需要在文件中嵌入脚本,有其他浏览器的用户不应该得到它。$.getScript
只是$.ajax
和dataType
script
的缩写,所以它只加载脚本并执行它。
- 如何运行从TFS获取项目的windows脚本文件
- 在HTML中,如果第二次加载相同的脚本文件,它还会被加载吗
- Project和作为web应用程序发布的多个doGet()脚本文件——需要澄清
- 引用nodejs服务器中html中的java脚本文件
- Firefox扩展开发:如何在内容脚本中创建一个全局函数,以便其他加载的脚本文件可以访问它
- 查看由 java 脚本文件上传器选择的文件的文件内容
- 如何通过$.getScript()获取脚本文件
- 公共脚本文件上的访问节点文件
- 使用gulp和browserfy从脚本文件进程访问Jquery库
- 在局部视图中加载脚本文件
- 用按钮动态替换java脚本文件
- jQuery单个脚本文件不是特定于*this*页面-显示“;undefined不是函数”;
- 是否可以不在grunt中提及所有的脚本文件路径
- 如何使用react和gump动态加载脚本文件
- Kinetic JS无法从外部脚本文件中工作
- 使用script元素上的html data-*属性来配置引用的脚本文件
- RequireJS-使用CDN加载非脚本文件
- 如何在Chrome扩展中使用内容脚本文件注入CSS
- 如何用JavaScript中的Ajax调用代替加载脚本文件(将YQL与JavaScript一起使用)
- JS脚本文件夹,而不是“;脚本”;在服务器ASP.NETMVC上部署后不可见