成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

說(shuō)一說(shuō) HTML 中的 script 標(biāo)簽

rubyshen / 441人閱讀

摘要:元素在頁(yè)面中使用語(yǔ)言主要的方法就是使用元素,元素內(nèi)部的代碼從上而下依次執(zhí)行。換句話說(shuō)的代碼可能會(huì)先于中的代碼執(zhí)行,所以在使用屬性時(shí),要避免兩個(gè)相互依賴。

我們?cè)?《Javascript簡(jiǎn)史》這遍文章中說(shuō)過(guò),「Javascript」這門(mén)語(yǔ)言是由 Netscape開(kāi)發(fā)而來(lái),當(dāng)初開(kāi)發(fā)的時(shí)候?yàn)榱四茏?「Javascript」這門(mén)語(yǔ)言能與 HTML 頁(yè)面共存,而且不影響頁(yè)面的其他內(nèi)容,為此增加了一個(gè)統(tǒng)一的腳本支持( script 腳本元素)。

script 元素

在 HTML 頁(yè)面中使用「Javascript」語(yǔ)言主要的方法就是使用 script 元素,script 元素內(nèi)部的代碼從上而下依次執(zhí)行。

在引入多個(gè) script 元素的時(shí)候,瀏覽器會(huì)按照 script 元素在頁(yè)面的中的先后順序進(jìn)行解析,當(dāng)上一個(gè)解析完成時(shí),才會(huì)進(jìn)行下一個(gè) script 元素中的內(nèi)容

在 HTML 中使用 Javascript 的兩種方法

//第一種方法:直接在標(biāo)簽內(nèi)使用 javascript 即可


//第二種方法:引用外部文件

script 元素的屬性

script 元素比較常用的幾個(gè)屬性

src:可選,用于引用外部 javascript 文件

type:可選,編寫(xiě)代碼使用的腳本語(yǔ)言的類(lèi)型(也成MIME類(lèi)型),默認(rèn)值為 text/javascript

async:可選,異步加載腳本,只對(duì)外部腳本文件有效

defer:可選,延遲腳本加載,在文檔完全被解析后在執(zhí)行,只對(duì)外部腳本文件有效

script 元素在 HTML 中的位置

由于「Javascript」語(yǔ)言是一門(mén)單線程語(yǔ)言,在同一時(shí)間內(nèi),只能執(zhí)行一個(gè)任務(wù),所以只有當(dāng)上一個(gè)任務(wù)完成之后才能進(jìn)行下一個(gè)任務(wù),因此會(huì)導(dǎo)致 script 元素在 HTML 中的位置不同,會(huì)表現(xiàn)出不同效果。

所有 script 元素都放在 元素中

這種做法意味著,我們必須等待所有的 Javascript 代碼必須執(zhí)行完成之后才能開(kāi)始展示頁(yè)面的內(nèi)容,如果頁(yè)面的 Javascript 代碼非常多,這種方法就會(huì)導(dǎo)致我們看到頁(yè)面的加載會(huì)非常慢,用戶體驗(yàn)非常差,那么這么樣去優(yōu)化呢?其實(shí)很簡(jiǎn)單。



    
        
        
        
    
    
        
頁(yè)面的內(nèi)容區(qū)域

所有 script 元素都放在頁(yè)面內(nèi)容的后面

優(yōu)化上面所說(shuō)的頁(yè)面加載慢的問(wèn)題,只需要把我們使用的 Javascript 代碼放到頁(yè)面的內(nèi)容之后即可,這樣頁(yè)面會(huì)首先加載內(nèi)容然后現(xiàn)實(shí)出來(lái),再去執(zhí)行 Javascript 代碼,這樣用戶就不會(huì)等待很久頁(yè)面才會(huì)顯示內(nèi)容。



    
        
    
    
        
頁(yè)面的內(nèi)容區(qū)域
腳本的延時(shí)加載

腳本如何進(jìn)行延時(shí)加載,這個(gè)就要利用 script 元素的 defer 屬性,在元素使用 defer 屬性時(shí),腳本會(huì)被延遲到整個(gè)頁(yè)面解析完成后在執(zhí)行。

//example1.js 中的代碼
//console.log("example1");
//console.log(document.getElementById("content"));

//example2.js 中的代碼
//console.log("example2");
//console.log(document.getElementById("content"));




    
    Title
    
    


    
這里頁(yè)面的內(nèi)容

你會(huì)發(fā)在沒(méi)有加入 defer 屬性時(shí)控制臺(tái)會(huì)打印出如下結(jié)果

example1
null
example2
null

當(dāng)給元素加上 defer 屬性時(shí),結(jié)果會(huì)發(fā)生變化,可以發(fā)現(xiàn)在 div 元素的內(nèi)容加載完成之后 Javascript 代碼才會(huì)執(zhí)行。

example1
這里頁(yè)面的內(nèi)容
example2
這里頁(yè)面的內(nèi)容
腳本的異步加載

腳本的異步加載,要用到 script 元素到 async 屬性,它與 defer 屬性類(lèi)似,都是修改 script 元素的加載行為,不過(guò) async 屬性不會(huì)影響頁(yè)面的其他加載,不會(huì)阻塞文檔呈現(xiàn),而且?guī)в?async 屬性的腳本不能保證它們執(zhí)行的前后順序,這一點(diǎn)與 defer 屬性有著不同之處。

換句話說(shuō) example2.js 的代碼可能會(huì)先于 example1.js 中的代碼執(zhí)行,所以在使用 async 屬性時(shí),要避免兩個(gè) js 相互依賴。




    
    Title
    
    


    
這里頁(yè)面的內(nèi)容
noscript 元素

早期的瀏覽器都會(huì)又一個(gè)問(wèn)題,那就是當(dāng)瀏覽器不支持 Javascript 語(yǔ)言時(shí)如何顯示頁(yè)面內(nèi)容,為此的解決方案就是創(chuàng)建了一個(gè) noscript 元素,它可以在不支持 Javascript 的瀏覽器中顯示內(nèi)容,而且只會(huì)在不支持 Javascript 的瀏覽器中才會(huì)顯示其中的內(nèi)容。




    
    Title
    
    


    

關(guān)注微信公眾號(hào):六小登登。領(lǐng)取全套學(xué)習(xí)資源

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/97373.html

相關(guān)文章

  • 說(shuō)一說(shuō) HTML 中的 script 標(biāo)簽

    摘要:元素在頁(yè)面中使用語(yǔ)言主要的方法就是使用元素,元素內(nèi)部的代碼從上而下依次執(zhí)行。換句話說(shuō)的代碼可能會(huì)先于中的代碼執(zhí)行,所以在使用屬性時(shí),要避免兩個(gè)相互依賴。 我們?cè)?《Javascript簡(jiǎn)史》這遍文章中說(shuō)過(guò),「Javascript」這門(mén)語(yǔ)言是由 Netscape開(kāi)發(fā)而來(lái),當(dāng)初開(kāi)發(fā)的時(shí)候?yàn)榱四茏?「Javascript」這門(mén)語(yǔ)言能與 HTML 頁(yè)面共存,而且不影響頁(yè)面的其他內(nèi)容,為此增加了...

    fox_soyoung 評(píng)論0 收藏0
  • 說(shuō)一說(shuō)“換行”踩的坑

    摘要:雖然效果一樣,但是這兩種換行的方式使用起來(lái)卻不同。使用換行這種方式用起來(lái)比較坑,所以本文章的重點(diǎn)就是這一部分。因?yàn)橹爸缽椏蛑幸獙?shí)現(xiàn)換行,只能通過(guò)的方式,而不能通過(guò)的方式。在元素上使用等方式,發(fā)現(xiàn)都是可以實(shí)現(xiàn)換行的。 前言 最近遇到這樣一個(gè)需求:需要在頁(yè)面中顯示一段第三方文本信息。這些文本完全由第三方自己定義,我們負(fù)責(zé)顯示在頁(yè)面即可,第三方要求這些文本需要換行顯示即可。 我們都知道在...

    objc94 評(píng)論0 收藏0
  • 每日前端進(jìn)階第三題:說(shuō)一說(shuō)你對(duì)HTML5語(yǔ)義化的理解

    摘要:作者陳大魚(yú)頭鏈接背景最近高級(jí)前端工程師劉小夕在上開(kāi)了個(gè)每個(gè)工作日布一個(gè)前端相關(guān)題的,懷著學(xué)習(xí)的心態(tài)我也參與其中,以下為我的回答,如果有不對(duì)的地方,非常歡迎各位指出。如果你采用正宗川菜做法,最后只需加入花生米,炒拌幾下就可以起鍋了。 作者:陳大魚(yú)頭 github: KRISACHAN 鏈接:github.com/YvetteLau/S… 背景:最近高級(jí)前端工程師 劉小夕 在 github 上...

    番茄西紅柿 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<