
文章插圖
javaScript是一種解釋型語言,它的執(zhí)行是自上而下,但是各個(gè)瀏覽器對(duì)于至上而下的理解是有細(xì)微差別的,而代碼的上下游也就是程序流又對(duì)于程序正確至關(guān)重要 。
首先得了解有幾種方法能把javaScript加入到頁面中? 常見下述的前2種,其實(shí)還有更多 。
1.頁面中直接引入外部js文件:<script src=https://www.520longzhigu.com/diannao/”my.js”>
2.頁面中直接寫入 js片段: <script>alert(1)</script>
3.在js中引入js文件(比較少用): document.write(“<scr”+”ipt src=https://www.520longzhigu.com/diannao/’my.js’>”);
注意:這時(shí)候”..</script>”必須拆成”</scr”+”ipt>”,否則瀏覽器可能會(huì)把父js片段關(guān)閉掉,出錯(cuò);
4.同樣在js中引用其他js片段,document.write(“<scr”+”ipt>alert(1)</scr”+”ipt>”);
你可能覺得這個(gè)并沒有必要,既然已經(jīng)在script中了還套一層干嘛?呵呵,怎么說也是一種寫法,而且它具有其特殊的行為,稍后我們討論到 。
5.使用Ajax中的xmlHttpRequest結(jié)合eval()來引入js,我最早在Dojo的代碼見到,寫的詳細(xì)些:
var ajaxRequest = getXmlHttpRequest()//省去各個(gè)瀏覽器得到xmlHttpRequest的部門
ajaxRequest.open(“GET”,”my.js”,false);//使用xmlHttpRequest對(duì)象Get方法的同步調(diào)用
ajaxRequest.send(null);
sJsFragment = ajax.responseText;//得到字符串為js片段
eval(sJsFragment);//執(zhí)行js片段
注意:這里要求my.js即后來的sJsFragment內(nèi)容得是非常規(guī)范的js,且沒有//開頭的注釋,怎樣檢查js是否規(guī)范呢?去http://jslint.com/
6.無所不能的Dom方法,非常好用:
var oScript = document.createElement(“script”);//創(chuàng)建一個(gè)Script元素
oScript.src = https://www.520longzhigu.com/diannao/“my.js”;//制定src屬性
document.getElementsByTagName(“head”)[0].appendChild(oScript);
說明:my.js的內(nèi)容會(huì)在oScript加入到文檔中之后獲得并執(zhí)行 。仔細(xì)看下這段容易發(fā)現(xiàn)這個(gè)調(diào)用是異步的,可以在文檔載入之后通過事件觸發(fā),我用它變通了一下,作為了xmlHttpRequest的Get方法在跨域取數(shù)時(shí)的替代,獲得了很完美的效果,以后有機(jī)會(huì)專門寫篇文 。
六種不少吧,可能還會(huì)有吧,而且這幾種之間還可能相互嵌套,變化無常 。
其中1、2、4、6種方式引入的javaScript的執(zhí)行順序是非常自然的,隨著頁面的載入以及后續(xù)的事件觸發(fā),它們遵守先來后到、而其內(nèi)部自上而下 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助:- 當(dāng)家主母中惠英紅演什么角色 惠英紅劇中演技怎么樣
- 《雪鷹領(lǐng)主》正在熱拍 陸婷玉劇中角色揭秘
- 中國智能手機(jī)三巨頭齊聚武漢 國內(nèi)手機(jī)三巨頭
- 疫情新數(shù)據(jù)消息:1月25日中國以外主要國家和地區(qū)疫情綜述
- 女性步行的好處,女性步行減少中風(fēng)幾率
- 生活中有哪些生活小妙招 有哪些生活小妙招
- 熒光海中國哪里有
- 中秋節(jié)吃什么傳統(tǒng)食物
- 中國人籍貫怎么填寫才正確
- M尺碼是多大
