草稿 未整理

2021-08-14 20:05:58 字數 2023 閱讀 8337

async和defer

1、defer="defer"和async="true/false"

html4.0中定義了defer;html5.0中定義了async。

(1)沒有defer或async,瀏覽器會立即載入並執行指定的js指令碼,也就是說,不等待後續載入的文件元素,讀到js指令碼就載入並執行。

(2)有async,載入後續文件元素的過程將和js的載入與執行並行進行(非同步)。

(3)有defer,載入後續文件元素的過程將和js的載入並行進行(非同步),但js的執行要在所有文件元素解析完成之後,domcontentloaded 事件觸發之前完成。

2、defer和async的共同點:

(1)不會阻塞文件元素的載入。

(2)使用這兩個屬性的指令碼中不能呼叫document.write方法。

(3)允許不定義屬性值,僅僅使用屬性名。

(4)只適用於外部指令碼(雖然ie4-ie7還支援對嵌入指令碼的defer屬性,但在ie8及之後的版本就只支援外部指令碼,對不支援的會直接忽略defer屬性,因此把延遲指令碼放在頁面底部仍然是最佳選擇)。

3、defer和async的不同點:

(2)每乙個defer屬性的指令碼都是在文件元素完全載入後,一般會按照原本的順序執行,同時一般會在document的domcontentloaded之前執行,相當於window.onload,但應用上比 window.onload 更靈活!實際上,defer 更接近於domcontentload。事實上,延遲指令碼不一定會按順序執行,也不一定會在domcontentloaded事件觸發之前執行,因此最好只包含乙個延遲指令碼。

四、動態建立script

在沒有定義defer和async之前,非同步載入的方式是動態

建立script,通過

window.onload

方法確保頁面載入完畢再將

script

標籤插入到

dom中。

function addscripttag(src)  

window.onload = function()

在瀏覽器位址列輸入url

瀏覽器檢視快取,如果請求資源在快取中並且新鮮,跳轉到轉碼步驟

瀏覽器解析url獲取協議,主機,埠,path

瀏覽器組裝乙個http(get)請求報文

瀏覽器獲取主機ip位址,過程如下:

開啟乙個socket與目標ip位址,埠建立tcp鏈結,三次握手如下:

tcp鏈結建立後傳送http請求

伺服器接受請求並解析,將請求**到服務程式,如虛擬主機使用http host頭部判斷請求的服務程式

伺服器檢查http請求頭是否包含快取驗證資訊如果驗證快取新鮮,返回304等對應狀態碼

處理程式讀取完整請求並準備http響應,可能需要查詢資料庫等操作

伺服器將響應報文通過tcp連線傳送回瀏覽器

瀏覽器接收http響應,然後根據情況選擇關閉tcp連線或者保留重用,關閉tcp連線的四次握手如下:

瀏覽器檢查響應狀態嗎:是否為1xx,3xx, 4xx, 5xx,這些情況處理與2xx不同

如果資源可快取,進行快取

對響應進行解碼(例如gzip壓縮)

根據資源型別決定如何處理(假設資源為html文件)

構建dom樹:

構建cssom樹:

根據dom樹和cssom樹構建渲染樹:

js解析如下:

顯示頁面(html解析過程中會逐步顯示頁面)

web語義化是指通過html標記表示頁面包含的資訊,包含了html標籤的語義化和css命名的語義化。

html標籤的語義化是指:通過使用包含語義的標籤(如h1-h6)恰當地表示文件結構

css命名的語義化是指:為html標籤新增有意義的class,id補充未表達的語義,如microformat通過新增符合規則的class描述資訊

為什麼需要語義化:

最簡單的兩種

1、表單提交

2、url的get請求

url="addmeet.php?date=2014-04-04&value=123";

工作小記(未整理)

一 1.在瀏覽器頁面執行js,通過路徑找到其本地檔案,並進行修改的行為是否被允許,且瀏覽器不提示警告?2.改動js指令碼檔案,需要清理瀏覽器快取才能生效 3.插入clob欄位sql declare reallybigtextstring clob 待插入的海量字串 begin insert into...

scrapy(六)(未整理完)

import scrapy from scrapy.pipelines.images import imagespipeline from scrapy.exceptions import dropitem class myimagespipeline imagespipeline def get ...

學習記錄 指標(未整理)

1.指標是什麼?指標就是記憶體的位址,指標變數就是能夠儲存記憶體位址的變數。一般資料型別變數名指的是這個資料所代表的值。2.如何定義指標?在最開始宣告乙個指標變數的時候,為了表明是乙個指標變數,要在變數名前加 間接引用符 在後續的使用中則不用加 了 下面兩種寫法是等價的 乙個變數 inta 第一種,...