您的位置:首页 > Web前端 > JQuery

html引入样式表和js文件中间用逗号隔开是什么意思和(function($) {...})(jquery);的意思

2013-11-20 09:29 381 查看
<link type="text/css" href="http://st.******.com/??css/basic/core_mod.css,res/css/default/main15.css,res/css/default/beta15.css,res/player/img/web_player.css?v10182012" charset="utf-8" media="screen" rel="stylesheet" />
<script type="text/javascript" src="http://st.******.com/??res/jsmin/site_100519.js,res/player/AC_OETags.js?v10182012"></script>

分析一下href中的内容:http://st.******.com/??css/basic/core_mod.css,res/css/default/main15.css,res/css/default/beta15.css,res/player/img/web_player.css?v10182012,其实真实的指向地址是:http://st.******.com/,?后面的内容是查询字符串,服务器端会解析这个查询字符串中包含的多个文件,并且合并到一个文件中,最终的目的是减少浏览器发出请求的次数,达到优化页面打开时间的效果。

这种一般是优化方面的,后台服务器可以合并多个资源文件的内容一次返回,减少http requet次数,提高效率。

如果有一个带一个参数的函数a (这里先不定义函数a,就是假设已经有了) 那么他执行就是a(b);这种样式.

我们还知道, js的匿名函数很强大, var c=function(paramC){...};那么c(paramCobj); 就是执行了这个匿名函数.

所以, 就刚才的a(b);来说, a可以是匿名函数.a=function(paramA){...}; a(b); 有可能就是这个结构.

好了, jquery连第一步都省了,直接使用没有名称的匿名函数.那么a(b); 这里的a,就被替换成了匿名函数, 所以就成了

(function(paramA){...})(b);

(匿名函数在js中因为也是对象,所以需要双括号包裹起来) 这个结构就说明了,我使用了匿名函数,并且立刻执行这个匿名函数.

再分析

(function(paramA){...})(b)

这种格式, 匿名函数部分参数paramA是个形参, 用在匿名函数内部作为值的调用, 而b这个参数就是个实参, 是将b这个值代入到函数内部.

大部分时候,

(function($) {...})(jquery); 

所在的上下文环境中,肯本没有jquery这个参数,所以在jquery匿名函数内, 他会自己创建jquery对象. 

我这里再简要说明下, 

(function($) {...})(jquery); 

和 

a=function($) {...}; 

a(jquery);

等价.

所以,这种写法就是为了让匿名函数立即执行.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: