摘要:高級程序設計摘錄可選。表示通過屬性指定的代碼的字符集。這個屬性并不是必需的,如果沒有指定這個屬性,則其默認值仍為。規范要求腳本按照它們出現的先后順序執行,因此第一個延遲腳本會先于第二個延遲腳本執行,而這兩個腳本會先于事件執行。
《javascript高級程序設計》摘錄:
MIME類型async:可選。表示應該立即下載腳本,但不應妨礙頁面中的其他操作,比如下載其他資源或 等待加載其他腳本。只對外部腳本文件有效。
charset:可選。表示通過 src 屬性指定的代碼的字符集。由于大多數瀏覽器會忽略它的值, 因此這個屬性很少有人用。
defer:可選。表示腳本可以延遲到文檔完全被解析和顯示之后再執行。只對外部腳本文件有效。IE7 及更早版本對嵌入腳本也支持這個屬性。
language:已廢棄。原來用于表示編寫代碼使用的腳本語言(如 JavaScript、JavaScript1.2 或 VBScript)。大多數瀏覽器會忽略這個屬性,因此也沒有必要再用了。
src:可選。表示包含要執行代碼的外部文件。
type:可選。可以看成是 language 的替代屬性;表示編寫代碼使用的腳本語言的內容類型(也稱為 MIME 類型)。這個屬性并不是必需的,如果沒有指定這個屬性,則其默認值仍為 text/javascript。
百度百科解釋:
MIME(Multipurpose Internet Mail Extensions)多用途互聯網郵件擴展類型。是設定某種擴展名的文件用一種應用程序來打開的方式類型,當該擴展名文件被訪問的時候,瀏覽器會自動使用指定應用程序來打開。多用于指定一些客戶端自定義的文件名,以及一些媒體文件打開方式
通俗的將,MIME類型就是告訴瀏覽器用什么程序解析傳遞給他的文件,而前端涉及到MIME類型的也就是與后臺交互時。http 協議中常見的MIME:參考維基百科
text/plain(純文本)
text/html(超文本標記語言)
image/png(PNG圖像)【PHP中為:image/x-png】
application/x-www-form-urlencoded(使用HTTP的POST方法提交的表單)
DOM 文檔的執行順序兩個屬性都是用來設定外部腳本執行的方式,在詳細講解兩個屬性的區別之前,先看一下DOM文檔的加載順序:
解析HTML結構;
加載外部腳本和樣式表文件;
解析并執行腳本代碼;
DOM樹構建完成;//DOMContentLoaded
加載圖片等外部文件;
頁面加載完畢;//load
由于瀏覽器采用至上而下的方式解析,所以會先解析html,直到遇到外部樣式和外部腳本。這時會阻塞瀏覽器的解析,外部樣式和外部腳本(在沒有async、defer屬性下)會并行加載,但是外部樣式會阻塞外部腳本的執行(查看css和js的阻塞請點擊)。
即:html解析->外部樣式、腳本加載->外部樣式執行->外部腳本執行->html繼續解析
async和defer屬性決定了js腳本的執行方式,內嵌式的腳本會忽略這兩個屬性
defer:腳本會被延遲到整個頁面都解析完畢后再執行
書中的例子和解釋:
Example HTML Page