引入js的兩種方式:
①嵌入**:在html中使用(可以有多個**塊)
問題?
①:為什麼元素獲取不到?
js**部分:(獲取到div1所對應的元素)
var div1 = document.getelementbyid("div1");
console.log(div1);
控制台結果:(顯示null:即沒有獲取到元素。)
解決方案:將寫到body元素中的最後。
②:為什麼頁面顯示那麼慢?(解決方法同問題①)
阻塞載入:延遲載入(defer):表示指令碼可以延遲到文件完全被解析和顯示之後再執行。
非同步載入(async):
總結:延遲載入:1、併發
2、多個js,按定義的順序執行
3、在文件解析完,才執行(html)
4、在domcontentloaded事件之間執行完
5、只支援外部引入方式(ie7以前的除外)
非同步載入:1、併發
2、多個js,不一定按順序執行
3、載入完就執行,在load事件之前(js)
4、在load事件之前執行完
5、只支援外部引入方式
JS阻塞和CSS阻塞
js的阻塞 3 嵌入js會阻止所有內容的呈現,但是外部jsd只會阻止其後內容的顯示 css阻塞 1 ie6下的css都是會阻止載入的 解決方法 把嵌入的js放在css前邊 3 原因 瀏覽器會維持html中css和js的順序,樣式表必須在嵌入放入js執行前先載入 解析完,而嵌入的js會阻塞後邊的資源載...
js指令碼阻塞
本文翻譯整理自 url 外部js指令碼載入的時候常常會遇到指令碼阻塞的問題,有什麼解決方法呢?1.there is an easy way to work around this problem use dynamic scripts tags and load scripts in paralle...
alert導致js阻塞及 字串轉義
在後台呼叫alert時,導致js阻塞,前台的collapsiblepanelextender以預設方式展開。fix bug 使用settimeout函式,在js執行完成後再呼叫alert,這樣就不會造成阻塞。後台呼叫alert如下 注意,string.format函式中如果其字串中出現了 這樣的格式...