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