2.1 script元素元素
1.結束之前任何地方都不要出現
2.引用外部js文件 用到src屬性 * js文件的擴展名不是必須的 php jsp可以動態生成js代碼 但是要確保服務器能不能返回正確的mime類型。
3.會優先執行外部文件而不是嵌入文件。
4元素都放在head中 等js全部被執行時在呈現內容 會出現延遲,所以要放在body內容的后面。(這是最佳選擇 因為defer屬性會被很多瀏覽器忽略掉)
5.script元素中設置defer屬性 相當于告訴瀏覽器立即下載但延遲執行, 最好只有一個延遲腳本。
6.異步腳本:async屬性 ,不讓頁面等待兩個腳本下載和執行 從而異步(不同步)加載頁面其他內容,建議異步腳本不要在加載期間修改dom。
7.在XML中 < >這種符號不可以直接用 容易被解讀為標簽 所以要用<等 還可以在script內的函數前加< ! [CDATA[ *** ]] 對于不兼容cdata的瀏覽器可以注釋掉。
8.外部文件有點:可維護 可緩存 ?適應未來?
9.文檔模式:混雜模式和標準模式(通過doctype實現的 大概了解就行)
10.<noscript> 當瀏覽器禁用腳本或者瀏覽器不支持腳本的情況下才會顯示其中內容
小結:
js外部文件可以是統一服務器上的文件也可以是其他任何域中的文件
script元素會按順序依次被解析 不使用defer或者async屬性時 先解析前面內容在解析后面的
defer屬性會在內容呈現后再執行腳本 瀏覽器會先解析不使用defer屬性的內容
asynu屬性不能保證異步腳本按他們的順序執行