李威 さぽている

          小說翻譯,日語(yǔ)相關(guān)轉(zhuǎn)移至http://blog.hjenglish.com/liwei

          javascript代碼的執(zhí)行順序

          這個(gè)不弄明白,代碼出問題了也不難以解決。
          《learning Jquery 1.3》p15有一句  JavaScript code is generally run as soon as it is encountered in the browser
          也就是說,瀏覽器遇到一個(gè)語(yǔ)句就立刻解析。貌似這個(gè)問題很快就解決了。

          但javascript的寫法相當(dāng)多,譬如網(wǎng)上很多人討論的$(document).ready(和<body onload= 執(zhí)行先后問題
          在p16中,提到onload    to run after the page is completely loaded.即onload在頁(yè)面完全加載完之后執(zhí)行
          ready是firing once the DOM is loaded—without waiting for images 。ready在DOM加載完,圖片未加載時(shí)執(zhí)行。
          也即ready在onload之前調(diào)用。

          這里就涉及html頁(yè)面的加載順序問題。網(wǎng)上搜到2篇相關(guān)文章。
          瀏覽器做了什么?
          http://www.cnblogs.com/guilipan/archive/2010/01/06/1640145.html
          Javascript在頁(yè)面加載時(shí)的執(zhí)行順序
          http://dancewithnet.com/2007/03/22/order-of-execution-of-javascript-on-web/

          看完之后,比之前明白了些,但具體的關(guān)系還是沒能理解。
          一個(gè)html頁(yè)面包括head和body兩個(gè)部分,head部會(huì)調(diào)用外部CSS和JS文件,body部會(huì)調(diào)用圖片,音視頻等內(nèi)容。
          下載順序是html ->CSS JS ->圖片等。
          解析順序是html(內(nèi)部是按序執(zhí)行head->body)->DOM生成 ->ready執(zhí)行 ->圖片下載 ->body.onload

          將以上兩者結(jié)合,html ->head(CSS JS) ->body->DOM生成 ->ready執(zhí)行 ->圖片下載 ->body.onload
          其中head和body部都可能包含js,按代碼順序執(zhí)行。
          這里就有一個(gè)疑問,瀏覽器會(huì)等待JS等文件下載完后,并順序執(zhí)行該JS后再繼續(xù)執(zhí)行之后的html代碼么?
          按想應(yīng)該不會(huì),不然JS文件過大,會(huì)影響html頁(yè)面渲染的速度,兩者應(yīng)該是異步的。
          但這個(gè)異步就會(huì)將之前總結(jié)的順序攪亂。譬如onload都執(zhí)行完了,包含ready的JS還沒下完,此時(shí)會(huì)發(fā)生什么?
          這里說得有問題,JS未下載完,onload是不會(huì)執(zhí)行的。
          有待繼續(xù)總結(jié)……

          posted on 2010-03-11 00:18 李威 閱讀(474) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 黑龙江省| 通道| 东至县| 中卫市| 金堂县| 胶南市| 白银市| 聊城市| 莒南县| 邹平县| 铜陵市| 合阳县| 凤台县| 怀安县| 芮城县| 喜德县| 呈贡县| 固安县| 德惠市| 响水县| 连山| 南京市| 玛沁县| 铁岭市| 乌兰浩特市| 武胜县| 九龙县| 平南县| 克山县| 延川县| 兰州市| 慈溪市| 波密县| 滕州市| 资阳市| 辛集市| 吴桥县| 四平市| 宁波市| 竹溪县| 海晏县|