第二章 在HTML中使用JavaScript

2.1<script>元素

6個屬性(有廢棄的不寫了):

? ? ? ? async:可選。表示應該立即下載腳本,但不妨礙頁面中的其他操作。僅對外部腳本文件有效;

? ? ? ? charest:src指定字符集編碼,很少有人用了;

? ? ? ? defer: 可選。表示腳本可以延遲到文檔完全被解析和顯示之后再執(zhí)行,僅對外部腳本文件有效;

? ? ? ? type:text/javascript

使用方式:兩種:直接在頁面中嵌入;外部包含。

? ? ? ? 直接在頁面中嵌入:js代碼從上至下被依次解釋。再解釋器對<script>元素內(nèi)部的所有代碼求值完畢以前,頁面中的其余內(nèi)ring都不會被瀏覽器加載或顯示。注意不要載任何地方出現(xiàn)</script>,一定要用,則使用<\/script>.

? ? ? ? 外部包含:注意在HTML中,使用</script>結(jié)尾,不可使用</>結(jié)尾。同是不可在中間包含js代碼,不會執(zhí)行嵌入代碼。

解析順序:如果不包含async與defer,就按順序執(zhí)行<script>文件。

2.1.1 標簽的位置

傳統(tǒng)放在<head>中,目的把所有外部文件的引用都放在相同的位置。但這樣的話,必須等到全部的js代碼都被下載解析和執(zhí)行完成以后,才開始呈現(xiàn)頁面的內(nèi)容(瀏覽器在遇到<body>標簽時才開始呈現(xiàn)內(nèi)容),這樣會導致瀏覽器在呈現(xiàn)頁面時出現(xiàn)明顯的延遲。所以一般都把全部的js引用放在<body>元素中頁面內(nèi)容的后面。

2.1.2 延遲腳本

defer屬性:表明腳本在執(zhí)行時不會影響頁面的構(gòu)造,即腳本會被延遲到整個頁面解析完后再運行。瀏覽器立即下載,但延遲執(zhí)行。按照先后順序執(zhí)行。

使用<script defer="defer">

2.1.3異步腳本

與defer不同,不保證先后順序。指定的目的是不讓頁面等待腳本下載和執(zhí)行,從而異步加載其他內(nèi)容。

使用:<scriot async>

2.2嵌入代碼與外部文件

最好使用外部文件,優(yōu)點:可維護性,可緩存:可加快界面加載速度,適應未來。

2.3文檔模式

主要影響CSS內(nèi)容的呈現(xiàn)。

混雜模式(quirks mode):會讓IE的行為與IE5相同。

標準模式(standard mode):讓IE的行為更接近標準行為。<!DOCTYPE html>

2.4<noscript>元素

瀏覽器不支持腳本;瀏覽器支持腳本,但腳本被禁用時,會顯示該元素中的內(nèi)容。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容