ÈçºÎÕýÈ·µÄ¼ÓÔØjavascriptÎļþ
1£© Ϊʲô¼ÓÔØjavascriptÎļþºÜÖØÒª£¿
javascriptÎļþÊDZȽÏÌØÊâµÄ£¬ÒòΪä¯ÀÀÆ÷¼ÓÔØjavascriptÊÇ´®Ðеġ£ÒÔΪ×ÅÔÚ¼ÓÔØJavascriptÎļþµÄʱºò£¬ÆäËûÒ»ÇÐ×ÊÔ´µÄÏÂÔØ°üÀ¨Ò³ÃæµÄÏÔʾ¶¼»á±»×èÈû¡£
2£© ÈçºÎÕýÈ·µÄ¼ÓÔØJavaScript£¿
a. ½«JavaScriptÎļþ·ÅÔÚÒ³ÃæµÄ×îºó
ÒòΪJavaScriptµÄ¼ÓÔØ»á×èÈûÒ³ÃæµÄÏÔʾ£¬ËùÒÔ½«JavaScriptÎļþ·ÅÖÃÔÚÒ³ÃæµÄ×îºó£¬Ò²¾ÍÊÇ<body>±êÇ©½áÊøÇ°¡£ÕâÑùÓû§¿ÉÒÔ¸ü¿ìµÄ¿´µ½Ò³ÃæµÄÏÔʾ£¬¿ÉÒÔÓиüºÃµÄÓû§ÌåÑé¡£
b. ²¢ÐеļÓÔØJavaScript
Èç¹ûʹÓÃÆÕͨµÄ<script>±êÇ©À´ÒýÓÃÍⲿµÄJSÎļþ£¬ÄÇôJSÎļþµÄÏÂÔØÊÇ´®Ðеģ¬ÕâÑùͨ³£Ð§ÂÊ»á·Ç³£µÍ¡£ÍƼöʹÓÃLABjsÀ´¼ÓÔØJavaScript£¬¿ÉÒÔ´ïµ½JSÎļþµÄ²¢ÐÐÏÂÔØ£¬µ«Í¬Ê±ÓÖÓлúÖÆÀ´±£Ö¤JSÎļþÖ´ÐеÄ˳Ðò¡£
ÏÂÃæ¾ÍÊÇÒ»¸öʹÓÃLABjÀ´¼ÓÔØJavaScriptµÄÀý×Ó
<script>
$LAB
.script("framework.js").wait()
.script("plugin.framework.js")
.script("myplugin.framework.js")
.wait(function(){
myplugin.init();
framework.init();
framework.doSomething();
});
</script>
¾ßÌå¿ÉÒԲ鿴LABjµÄ¹Ù·½ÍøÕ¾£ºhttp://labjs.com/
c. Lazy load
Õâ¸öÍùÍùÊǽ²ÆðÀ´±È½ÏÈÝÒ×£¬×öÆäËû±È½ÏÄÑ¡£ÔÀíºÜ¼òµ¥£¬¾ÍÊÇÒ³ÃæÏÔʾµÄʱºò£¬Ö»¼ÓÔØÐèÒªµÄJSÎļþ£¬È»ºóÔÚÓû§²Ù×÷µÄʱºòÔÙ¼ÓÔØÐèÒªµÄJSÎļþ¡£
d. ÕýÈ·µÄѹËõJSÎļþ
ʹÓÃJSMin»òÕßGoogle ClosureÀ´Ñ¹ËõJSÎļþ£¬Õâ¸öÍùÍù¿ÉÒÔ´ó´ó¼õÉÙJSÎļþµÄ´óС¡£
Ïà¹ØÎĵµ£º
ÔÚJavascriptÖÐ×÷ÓÃÓòÊÇÓɺ¯Êý»®·ÖµÄ¡£
//ÉèÖÃÈ«¾Ö±äÁ¿foo
var foo = "test";
if(true){
var foo = "new foo";
}
//´ËʱfooΪ"new test"
alert(foo == "new foo");
function test(){
var foo = "old test";
}
//µ÷ÓÃʱ£¬fooÖ»ÔÚº¯Êý×÷ÓÃÓòÄÚÆð×÷ÓÃ
test();
//foo»¹ÊǵÈÓÚ"new test"
alert(foo == "new te ......
ÕâÁ½ÌìµÄ¹¤×÷ÖÐÓöµ½Ò»¸öÓйØjsµÄÎÊÌ⣬ºÜÓôÃÆÓöµ½jsÎÊÌ⣬ÒòΪûÓб¨´í£¬Äã¸ù±¾¾Í²»ÖªµÀ×Ô¼º´íÔÚÄÄÀï¡£
Æäʵ¾ÍÊǹØÓÚ“document.getElementById("ss").innerText”µÄÎÊÌ⣬ÎÒÉÏÍø²é¹ØÓÚjsä¯ÀÀÆ÷µÄ¼æÈÝÎÊÌ⣬¿ÉÊǶ¼¸ø³öµÄ½âÊÍÊÇ£º
“HTML¶ÔÏó»ñÈ¡ÎÊÌâ
FireFox
£ºdocument
.getElementById
(& ......
Ò»¡¢»ù±¾Ê¹Ó÷½·¨
prototypeÊôÐÔ¿ÉËãÊÇJavaScriptÓëÆäËûÃæÏò¶ÔÏóÓïÑÔµÄÒ»´ó²»Í¬Ö®´¦¡£
¼ò¶øÑÔÖ®£¬prototype¾ÍÊǓһ¸ö¸øÀàµÄ¶ÔÏóÌí¼Ó·½·¨µÄ·½·¨”£¬Ê¹ÓÃprototypeÊôÐÔ£¬¿ÉÒÔ¸øÀද̬µØÌí¼Ó·½·¨£¬ÒÔ±ãÔÚJavaScriptÖÐʵÏÖ“¼Ì³Ð”µÄЧ¹û¡£
& ......
javaScript
ÖÐµÄ call
() ÊÇÒ»¸öÆæÃîµÄ·½·¨£¬µ«Ò²ÊÇÒ»¸öÈÃÈËÃÔ»óµÄ·½·¨£¬ÏÈ¿´Ò»Ï¹ٷ½µÄ½âÊÍ£º
call
·½·¨
Çë²ÎÔÄ
Ó¦ÓÃÓÚ£ºFunction ¶ÔÏó
񻂗
°æ±¾ 5.5
µ÷ÓÃÒ»¸ö¶ÔÏóµÄÒ»¸ö·½·¨£¬ÒÔÁíÒ»¸ö¶ÔÏóÌæ»»µ±Ç°¶ÔÏó¡£
call
([thisObj[,arg1[, arg2[, [,.argN]]]]])
²ÎÊý
thisObj
¿ÉÑ¡Ïî¡£½«±»ÓÃ×÷µ±Ç ......