當我們要在頁面當中引入指令碼的時候,一般用的是script標籤(i.e.
複製**把script放body尾的話有個缺點就是要等dom載入好了才會去載入並執行script指令碼。前面開頭的時候說過獲取/載入指令碼內容不會阻塞,只有執行指令碼內容的時候才會阻塞!如果能在載入dom的同時載入script指令碼,等到dom解析好了再執行指令碼,這樣就可以節省部分載入指令碼的時間。當指令碼比較大時提高的效率會很可觀。於是就有了script標籤裡的defer屬性: 並行載入該指令碼,直到dom解析完了並且它前面含有defer的指令碼都執行完後,才可以執行該指令碼。
test js tag async and defer attributestitle>
defer
src='./script1.js'>
script>
defer
src='./script2.js'>
script>
head>
id='load-experiment'> hello world h1>
body>
html>
複製**
console裡的輸出為:
script1 is loading at 1496760312686
script1.js:4 script1 element
script1.js:8 script1 finishes loading at 1496760313686
script2.js:2 script2 is loading at 1496760313686
script2.js:4 script2 element
script2.js:8 script2 finishes loading at 1496760315686複製**
發現:
複製**
多次重新整理頁面可以看到每次輸出結果不一樣。體現在:
頁面上加了async的指令碼無法保證其執行順序,這通常也是隱藏bug的**。除非你確定該指令碼跟頁面其他指令碼無依賴關係,不然慎用async吧。
綜上所述,最後引入指令碼的形式大概是這樣滴:
src="headscripts.js">
scripts>
defer
src="bodyscripts.js">
script>
head>
id='load-experiment'> hello world h1>
async
src="forumwidget.js">
script>
async
src="chatwidget.js">
script>
body>
html>
複製**
**示例 乙個例子了解apacheBench的簡單使用方法
apachebench,即ab,apache http server benchmarking tool,是apache提供的衡量http伺服器效能的乙個簡單的小工具,用來對apache伺服器進行壓力測試,主要的衡量指標就是伺服器每秒能夠處理請求的數目,同時支援併發請求。下面舉個例子來分析ab 執行...
乙個簡單css例子
lang en charset utf 8 css講解title rel stylesheet href style.css body div dd xddaa hover abc ulli first child ulli last child ulli nth child 3 ulli only...
乙個簡單的json例子
名稱 年齡郵箱 response.setcontenttype text html charset utf 8 response.setheader cache control no cache jsonobject json new jsonobject try json.put jobs mem...