在網頁編寫JavaScript時,可以通過嵌入式、外鏈式和行內式

閱讀:542 2023-12-05 23:43:22

在網頁編寫JavaScript時,可以通過嵌入式、外鏈式和行內式

在網頁編寫JavaScript時,可以通過嵌入式、外鏈式和行內式這3種方式來引入JavaScript代碼,下面針對這3種方式分別進行講解。

1.嵌入式

嵌入式就是使用<script>標簽包裹JavaScript代碼,直接編寫到HTML文件中,具體實例如下:

<script>

JavaScript語句

</script>

 

<script type="text/javascript">

JavaScript語句

</script>


上述示例演示了兩種書寫方式,其中<script>標簽的type屬性用于告知瀏覽器腳本的類型,由于HTML5中該屬性默認值為"text/javascript",因此在編寫時可以省略。

2.外鏈式

外鏈式是指將JavaScript代碼保存到一個單獨的文件中,通常使用“js”作為文件的擴展名,然后使用<script>標簽的src屬性引入文件,具體示例如下:

HTML文件

……

<script src="js/demo.js"></script>

……

 

js/demo.js文件

……

alert("Hello World");

……


通過示例可以看出,src屬性是一個文件路徑或URL地址,可以指定為如下形式。

  • 相對路徑:“js/demo.js”引入當前目錄下的js子目錄中的demo.js文件;“../js/demo.js”引入上級目錄下的js子目錄中的demo.js文件。

  • 絕對路徑:“/js/demo.js”引入網站根目錄下的js子目錄中的demo.js文件;如果網頁在本地,可以通過“file://c:/js/demo.js”引入本地文件

  • URL地址:如“http://js.test/demo.js”;若自動使用當前頁面協議,可寫為“//js.test/demo.js”。

在實際開發中,當需編寫大量、邏輯復雜、特有功能的JavaScript代碼時,推薦大家使用外鏈式。相比嵌入式,外鏈式的優勢可以總結為以下3點。

  • 嵌入式會導致HTML與JavaScript代碼混合在一起,不利于修改和維護。

  • 嵌入式會增加HTML文件的體積,影響網頁本事的加載速度,而外鏈式可以利用瀏覽器緩存提高速度。例如,在多個頁面中引入了相同的js文件是,打開第一個頁面后,瀏覽器就會將js文件緩存下來,下次打開其他頁面時,就不用重新下載js文件了。

  • 外鏈式有利于分布式部署。網頁中鏈接的js、css、圖片等靜態文件可以部署到CDN服務器上,利用CDN的優勢加快下載速度。

為了降低JavaScript阻塞問題對頁面造成的影響,可以使用HTML5為<script>標簽新增的兩個可選屬性:async和defer,下面分別介紹其作用。

  1. 1)async

async用于異步加載,即先下載文件,不阻塞其他代碼執行,下載完成后再執行。

<script src="http://js.test/demo.js" async></script>

  1. 2)defer

defer用于延后執行,即先下載文件,知道網頁加載完成后再執行。

<script src="http://js.test/demo.js" defer></script>

添加async或defer屬性后,即使文件下載失敗,也不會阻塞后面的JavaScript代碼執行。

3.行內式

行內式是將JavaScript代碼作為HTML標簽的屬性值使用。例如,單擊“test”按鈕時,彈出一個警告框提示“Hello World”,具體示例如下。

<a href="javascript:alert('Hello World');">test</a>

JavaScript還可以寫在HTML標簽的實際屬性中,事件是JavaScript中的一種機制。例如,單擊網頁中的一個按鈕時,就會觸發按鈕的單擊事件,具體示例如下。

<input type="button" onclick="alert('Hello World');" value="test">

上述代碼實現了單擊“test”按鈕時,彈出一個警告框提示“Hello World”。

由于現代網頁開發提倡結構、樣式、行為的分離,即分離HTML、CSS、JavaScript三部分的代碼,避免直接寫在HTML標簽的屬性中,從而更有利于維護。因此在實際開發中不推薦使用行內式。

相關文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感興趣
推薦閱讀 更多>
推薦商標

{{ v.name }}

{{ v.cls }}類

立即購買 聯系客服
主站蜘蛛池模板: 无码国产精品一区二区免费3p| 亚洲av无码乱码国产精品| 亚洲av无码一区二区三区乱子伦| 久久精品无码一区二区日韩AV| 国产精品无码久久久久| 亚洲乱亚洲乱妇无码麻豆| 亚洲中文字幕久久精品无码A| 亚洲一级特黄大片无码毛片| 久久亚洲AV成人出白浆无码国产| 国产AV无码专区亚洲AV麻豆丫| 无码少妇精品一区二区免费动态| 东京热av人妻无码| 99精品国产在热久久无码| 亚洲韩国精品无码一区二区三区 | 日韩免费人妻AV无码专区蜜桃| 欧洲黑大粗无码免费| 人妻丰满AV无码久久不卡| 久久久久成人精品无码| 日韩美无码五月天| 国产成人精品无码专区| 国产精品无码久久四虎| 久久亚洲精品成人无码| 伊人久久大香线蕉无码| 亚洲中文无码av永久| 无码人妻AⅤ一区二区三区| 亚洲熟妇无码另类久久久| 在线精品自拍无码| 国产成人A亚洲精V品无码| 天堂Aⅴ无码一区二区三区| 精品无码一级毛片免费视频观看| 无码人妻精品一区二区三区不卡 | av无码人妻一区二区三区牛牛 | 国产精品无码久久久久| 久久亚洲AV永久无码精品| 亚洲人成无码www久久久| 少妇无码AV无码一区| 国产精品热久久无码av| 中文字幕人妻无码一区二区三区| 成人av片无码免费天天看| 在线高清无码A.| 无码乱人伦一区二区亚洲|