最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript 全面解析各種瀏覽器網(wǎng)頁(yè)中的JS 執(zhí)行順序

 更新時(shí)間:2009年02月17日 17:05:13   作者:  
近來(lái)我通過(guò)一些測(cè)試以全面的解析網(wǎng)頁(yè)在各種瀏覽器中的JavaScript代碼的執(zhí)行順序,在這兒做個(gè)記錄。
我們知道javaScript是一種解釋型語(yǔ)言,他的執(zhí)行是自上而下,但是各個(gè)瀏覽器對(duì)于至上而下的理解是有細(xì)微差別的,而代碼的上下游也就是程序流又對(duì)于程序正確至關(guān)重要,所以我覺(jué)得有必要深入理解多個(gè)js塊兒的執(zhí)行順序。
首先得知道有多少方法能把javaScript加入到頁(yè)面中呢?常見(jiàn)下述的前2種,其實(shí)還有更多。
1.頁(yè)面中直接引入外部js文件:<script src="my.js"></script>
2.頁(yè)面中直接寫(xiě)如js片段<script>alert(1)</script>
3.在js中引入js文件document.write("<scr"+"ipt src='my.js'></scr"+"ipt>");
注意:這時(shí)候"..</script>"必須拆成"</scr"+"ipt>",否則瀏覽器可能會(huì)把父js片段關(guān)閉掉,出錯(cuò);
4.同樣在js中引用其他js片段,document.write("<scr"+"ipt>alert(1)</scr"+"ipt>");
你可能覺(jué)得這個(gè)并沒(méi)有必要,既然已經(jīng)在script中了還套一層干嘛?呵呵,怎么說(shuō)也是一種寫(xiě)法,而且它具有其特殊的行為,稍后我們討論到。
5.使用Ajax中的xmlHttpRequest結(jié)合eval()來(lái)引入js,我最早在Dojo的代碼見(jiàn)到,寫(xiě)的詳細(xì)些:
var ajaxRequest = getXmlHttpRequest()//省去各個(gè)瀏覽器得到xmlHttpRequest的部門(mén)
ajaxRequest.open("GET","my.js",false);//使用xmlHttpRequest對(duì)象Get方法的同步調(diào)用
ajaxRequest.send(null);
sJsFragment = ajax.responseText;//得到字符串為js片段
eval(sJsFragment);//執(zhí)行js片段
注意:這里要求my.js即后來(lái)的sJsFragment內(nèi)容得是非常規(guī)范的js,切沒(méi)有//開(kāi)頭的注釋,怎樣檢查js是否規(guī)范呢?去http://jslint.com/
6.無(wú)所不能的Dom方法,這個(gè)我最早在Yahoo的前端代碼中見(jiàn)到,非常厲害,也寫(xiě)的詳細(xì)些:
var oScript = document.createElement("script");//創(chuàng)建一個(gè)Script元素
oScript.src = "my.js";//制定src屬性
document.getElementsByTagName("head")[0].appendChild(oScript);
說(shuō)明:my.js的內(nèi)容會(huì)在oScript加入到文檔中之后獲得并執(zhí)行。仔細(xì)看下這段容易發(fā)現(xiàn)這個(gè)調(diào)用是異步的,可以在文檔載入之后通過(guò)事件觸發(fā),我用它變通了一下,作為了xmlHttpRequest的Get方法在跨域取數(shù)時(shí)的替代,獲得了很完美的效果,以后有機(jī)會(huì)專門(mén)寫(xiě)篇文。
六種不少吧,可能還會(huì)有吧,而且這幾種之間還可能相互嵌套,變化無(wú)常。
其中1、2、4、6種方式引入的javaScript的執(zhí)行順序是非常自然的,隨著頁(yè)面的載入以及后續(xù)的事件觸發(fā),它們遵守先來(lái)后到、而其內(nèi)部自上而下。
我們主要關(guān)注的是第3、4種引入js方法帶來(lái)的問(wèn)題(轉(zhuǎn)帖請(qǐng)注明出處:http://blog.csdn.net/lenel)

相關(guān)文章

  • 微信小程序?qū)崿F(xiàn)隨機(jī)驗(yàn)證碼

    微信小程序?qū)崿F(xiàn)隨機(jī)驗(yàn)證碼

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)隨機(jī)驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • js實(shí)現(xiàn)點(diǎn)擊切換checkbox背景圖片的簡(jiǎn)單實(shí)例

    js實(shí)現(xiàn)點(diǎn)擊切換checkbox背景圖片的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)?lái)一篇js實(shí)現(xiàn)點(diǎn)擊切換checkbox背景圖片的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • JavaScript實(shí)現(xiàn)輪播圖效果

    JavaScript實(shí)現(xiàn)輪播圖效果

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)輪播圖效果,幫助大家更好的理解和學(xué)習(xí)JavaScript,感興趣的朋友可以了解下
    2020-10-10
  • JS實(shí)現(xiàn)網(wǎng)頁(yè)時(shí)鐘特效

    JS實(shí)現(xiàn)網(wǎng)頁(yè)時(shí)鐘特效

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)網(wǎng)頁(yè)時(shí)鐘特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 原生Javascript實(shí)現(xiàn)繼承方式及其優(yōu)缺點(diǎn)詳解

    原生Javascript實(shí)現(xiàn)繼承方式及其優(yōu)缺點(diǎn)詳解

    JS作為面向?qū)ο蟮娜躅?lèi)型語(yǔ)言,繼承也是其非常強(qiáng)大的特性之一,那么這篇文章主要給大家介紹了關(guān)于原生Javascript實(shí)現(xiàn)繼承方式及其優(yōu)缺點(diǎn)的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • redux處理異步action解決方案

    redux處理異步action解決方案

    這篇文章主要介紹了redux處理異步action解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Javascript實(shí)現(xiàn)跨域后臺(tái)設(shè)置攔截的方法詳解

    Javascript實(shí)現(xiàn)跨域后臺(tái)設(shè)置攔截的方法詳解

    這篇文章主要給大家介紹了關(guān)于Javascript實(shí)現(xiàn)跨域后臺(tái)設(shè)置攔截的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • ES6基礎(chǔ)之展開(kāi)語(yǔ)法(Spread syntax)

    ES6基礎(chǔ)之展開(kāi)語(yǔ)法(Spread syntax)

    這篇文章主要介紹了ES6基礎(chǔ)之展開(kāi)語(yǔ)法(Spread syntax),主要介紹了擴(kuò)展語(yǔ)法的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • canvas學(xué)習(xí)之API整理筆記(二)

    canvas學(xué)習(xí)之API整理筆記(二)

    本篇文章的主要內(nèi)容包括高級(jí)動(dòng)畫(huà)、像素操作、性能優(yōu)化等知識(shí)點(diǎn),講解每個(gè)知識(shí)點(diǎn)的同時(shí)還會(huì)有一些酷炫的demo。下面跟著小編一起來(lái)看下吧
    2016-12-12

最新評(píng)論

唐河县| 蒲城县| 噶尔县| 镇远县| 江华| 斗六市| 吉安市| 大化| 深泽县| 汽车| 普陀区| 额济纳旗| 浏阳市| 保定市| 琼中| 靖江市| 额尔古纳市| 卓资县| 安康市| 濮阳县| 尚志市| 巫山县| 财经| 三河市| 武夷山市| 吉水县| 拉萨市| 临澧县| 中阳县| 库车县| 新宾| 台北县| 资溪县| 禄劝| 仪陇县| 仁布县| 鄂托克前旗| 凤山市| 普陀区| 上虞市| 库伦旗|