JS高程紅寶讀書筆記01 - 在html中使用javascript

在html中使用javascript

1.內(nèi)嵌式:

一般在<body>標(biāo)簽的尾部添加<script>標(biāo)簽,并且指定type="text/javascript"
比如這樣:

<html>
    <head>
    </head>
    <body>
        <!--內(nèi)容-->
        <script type="text/javascript">
            console.log('Tag should be here');
        </scipt>
    <body>
</html>

這樣的好處是:

  1. 避免腳本加載阻塞文檔渲染
  2. 避免腳本操作DOM時(shí)文檔流未渲染完畢導(dǎo)致獲取DOM元素失敗船殉。

看個(gè)例子:

<html>
    <head>
        <script type = "text/javascript">
                let btn = document.getElementsByTagName('button')[0];
                // do sth with btn
                // error 
        </script>
    </head>
    <body>
        <!-- content here -->
                <button>按鈕</button>
    </body>
</html>

報(bào)錯(cuò):


原因是先加載了腳本內(nèi)的內(nèi)容览绿,而此時(shí)文檔流未渲染胸囱,并沒有<button>標(biāo)簽存在,所以獲取button得到的結(jié)果為undefined.

解決辦法
將script里的內(nèi)容放置到window.onload{ }里,在文檔加載完成后會(huì)觸發(fā)load事件公黑。此時(shí)哆致,在文檔中的所有對(duì)象都在DOM中绕德,所有圖片,腳本摊阀,鏈接以及子框都完成了加載耻蛇。

2.外部引入

外部引入JS腳本文件作為最佳實(shí)踐,src作為外部引入資源的重要屬性胞此,用來指定外部資源的引入路徑臣咖,可以是相對(duì)路徑,也可以是絕對(duì)路徑:

<html>
    <head>
        <script type = "text/javascript" src="js/相對(duì)路徑.js"></script>
        <script type = "text/javascript" src="desktop/example/js/絕對(duì)路徑.js"></script>
    </head>
    <body>
        <!-- content here -->
    </body>
</html>

同樣漱牵,如同嵌入式JS一樣夺蛇,外部引入JS同樣也需要考慮使得文檔流優(yōu)先加載的問題。

延遲腳本

使用defer表明外部引入的腳本將按照它們出現(xiàn)的順序先后執(zhí)行酣胀,也就是說先出現(xiàn)的腳本會(huì)先執(zhí)行刁赦,然后再到后者。但是在現(xiàn)實(shí)里闻镶,延遲腳本不一定會(huì)按照順序執(zhí)行甚脉,也不一定會(huì)在DOMContentLoaded事件觸發(fā)前執(zhí)行,因此最好只包含一個(gè)延遲腳本铆农。(順序得不到保障牺氨,無法保證預(yù)期效果,容易出錯(cuò))

<html>
    <head>
        <script type="text/javascript" defer="defer" src="我會(huì)先執(zhí)行.js"></script>
        <script type="text/javascript" defer="defer" src="我會(huì)后執(zhí)行.js"></script>
    </head>
    <body>
        <!-- content here -->
    </body>
</html>

異步腳本

async表示瀏覽器立即下載物件顿涣,但是不保證執(zhí)行先后順序波闹,指定為async的目的是不讓頁面等待兩個(gè)腳本的下載和執(zhí)行,從而可以異步加載頁面其他內(nèi)容涛碑。所以設(shè)為async的腳本最好不要進(jìn)行dom操作精堕,否則有可能出現(xiàn)加載頁面時(shí)出現(xiàn)錯(cuò)誤。

<html>
    <head>
        <script type="text/javascript" defer="defer" src="我不一定第二個(gè)執(zhí)行.js"></script>
        <script type="text/javascript" defer="defer" src="我不一定第二個(gè)執(zhí)行.js"></script>
    </head>
    <body>
        <!-- 我不會(huì)等待兩個(gè)腳本文件的加載蒲障,我會(huì)直接進(jìn)行頁面渲染 -->
    </body>
</html>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末歹篓,一起剝皮案震驚了整個(gè)濱河市瘫证,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌庄撮,老刑警劉巖背捌,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異洞斯,居然都是意外死亡毡庆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門烙如,熙熙樓的掌柜王于貴愁眉苦臉地迎上來么抗,“玉大人,你說我怎么就攤上這事亚铁∮叮” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵徘溢,是天一觀的道長(zhǎng)吞琐。 經(jīng)常有香客問我,道長(zhǎng)然爆,這世上最難降的妖魔是什么站粟? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮曾雕,結(jié)果婚禮上卒蘸,老公的妹妹穿的比我還像新娘。我一直安慰自己翻默,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布恰起。 她就那樣靜靜地躺著修械,像睡著了一般。 火紅的嫁衣襯著肌膚如雪检盼。 梳的紋絲不亂的頭發(fā)上肯污,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音吨枉,去河邊找鬼蹦渣。 笑死,一個(gè)胖子當(dāng)著我的面吹牛貌亭,可吹牛的內(nèi)容都是我干的柬唯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼圃庭,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼锄奢!你這毒婦竟也來了失晴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤拘央,失蹤者是張志新(化名)和其女友劉穎涂屁,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體灰伟,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拆又,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了栏账。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帖族。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖发笔,靈堂內(nèi)的尸體忽然破棺而出盟萨,到底是詐尸還是另有隱情,我是刑警寧澤了讨,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布捻激,位于F島的核電站,受9級(jí)特大地震影響前计,放射性物質(zhì)發(fā)生泄漏胞谭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一男杈、第九天 我趴在偏房一處隱蔽的房頂上張望丈屹。 院中可真熱鬧,春花似錦伶棒、人聲如沸旺垒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽先蒋。三九已至,卻和暖如春宛渐,著一層夾襖步出監(jiān)牢的瞬間竞漾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來泰國打工窥翩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留业岁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓寇蚊,卻偏偏與公主長(zhǎng)得像笔时,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子幔荒,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 簡(jiǎn)單介紹JavaScript的發(fā)展歷史 JavaScript因互聯(lián)網(wǎng)而生糊闽,回顧它的歷史要從瀏覽器的歷史講起梳玫。 19...
    _Dot912閱讀 490評(píng)論 0 3
  • 1. CSS和JS在網(wǎng)頁中的放置順序是怎樣的? css放在head標(biāo)簽內(nèi)右犹,防止渲染時(shí)出現(xiàn)白屏 js放在最后body...
    billa_8f6b閱讀 574評(píng)論 0 0
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,139評(píng)論 25 707
  • 1提澎、耶和華啊念链!我的敵人何其加增盼忌,有許多人起來攻擊我; 2掂墓、有許多人議論我說:“他得不著神的幫助谦纱。” 3君编、但你耶和華...
    我在天上有個(gè)家閱讀 1,545評(píng)論 0 0
  • 春天的那把傘 收納了晶瑩跨嘉、柔和的春雨 滋潤了萬物 蘇醒了沉睡的大地 夏天的那把傘 抵擋了酷熱、強(qiáng)烈的夏日 帶來了涼...
    幽蘭33閱讀 309評(píng)論 0 4