摘要:創(chuàng)建對象,添加到中。注意與的不同對象觸發(fā)事件,這也標志著程序執(zhí)行從同步腳本執(zhí)行階段,轉(zhuǎn)化為事件驅(qū)動階段。當所有的腳本加載完成并執(zhí)行后等加載完成后,,對象觸發(fā)事件。從此,以異步響應方式處理用戶輸入網(wǎng)絡事件等。
js時間線
js執(zhí)行是單線程,并不是說整個瀏覽器都是單線程的,姑且就成為單線程吧
js單線程的原因是為了避免多線程操作dom,引發(fā)的并發(fā)問題,dom屬于基礎數(shù)據(jù),從多線程上講,對它的操作要加事物,而js的操作最初就是為了操作dom,嗯,幸好是單線程的,總之一句話,凡是能夠修改dom的一定得同步
客戶端js時間線1、創(chuàng)建document對象,開始解析web頁面。創(chuàng)建HTMLHtmlElement對象,添加到document中。這個階段document.readyState = "loading"。
2、遇到link外部css,創(chuàng)建線程加載,并繼續(xù)解析文檔。并發(fā)
3、遇到script外部js,并且沒有設置async、defer,瀏覽器創(chuàng)建線程加載,并阻塞,等待js加載完成并執(zhí)行該腳本,然后繼續(xù)解析文檔。js擁有修改dom的能力-->domcument.write
4、遇到script外部js,并且設置有async、defter,瀏覽器創(chuàng)建線程加載,并繼續(xù)解析文檔。
async屬性的腳本,腳本加載完成后立即執(zhí)行。 defter==丟置尾部。
document.createElement("script")的方式動態(tài)插入script元素來模擬async屬性,實現(xiàn)腳本異步加載和執(zhí)行。
5、遇到img等,瀏覽器創(chuàng)建線程加載,并繼續(xù)解析文檔。并發(fā)
6、當文檔解析完成,document.readyState = "interactive"。
7、文檔解析完成后,所有設置有defer的腳本會按照順序執(zhí)行。(注意與async的不同)
8、document對象觸發(fā)DOMContentLoaded事件,這也標志著程序執(zhí)行從同步腳本執(zhí)行階段,轉(zhuǎn)化為事件驅(qū)動階段。
9、當所有async的腳本加載完成并執(zhí)行后、img等加載完成后,document.readyState = "complete",window對象觸發(fā)load事件。
10、從此,以異步響應方式處理用戶輸入、網(wǎng)絡事件等。
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/83116.html
摘要:離線檢測含義設備能否上網(wǎng)代碼注和,和最新的沒問題應用緩存緩存的目的是專門為網(wǎng)頁離線設計的,當然在在線情況也會緩存機制當用戶在地址輸入請求的地址去請求網(wǎng)頁時,瀏覽器會先本地緩存中查看是否有對應的緩存文件,如果有然后查看新鮮度就是是否過期了,如 23.1 離線檢測 含義:設備能否上網(wǎng) 代碼: navigator.onLine 注:IE6+和safari+5,firefox3+和ope...
摘要:也就是說,代碼隊列中僅能有一個間歇定時器在等待。這導致兩個問題,一是某些間隔會跳過,二是多個定時器的代碼之間的間隔可能比預期的小。 定時器:間歇調(diào)用和超時調(diào)用 超時調(diào)用:setTimeout(),接受兩個參數(shù),第一個參數(shù)是可執(zhí)行的JavaScript代碼字符串,或是回調(diào)函數(shù),第二個參數(shù)是毫秒為單位的插入代碼隊列的的時間。清除方式:clearTimeout(),參數(shù)是設置setTimeo...
摘要:也就是說,代碼隊列中僅能有一個間歇定時器在等待。這導致兩個問題,一是某些間隔會跳過,二是多個定時器的代碼之間的間隔可能比預期的小。 定時器:間歇調(diào)用和超時調(diào)用 超時調(diào)用:setTimeout(),接受兩個參數(shù),第一個參數(shù)是可執(zhí)行的JavaScript代碼字符串,或是回調(diào)函數(shù),第二個參數(shù)是毫秒為單位的插入代碼隊列的的時間。清除方式:clearTimeout(),參數(shù)是設置setTimeo...
摘要:應用緩存的應用緩存,或者簡稱為,是專門為開發(fā)離線應用而設計的。應用緩存還有很多相關的事件,表示其狀態(tài)的改變。數(shù)據(jù)存儲,通常直接叫做,最初是在客戶端用于存儲會話信息的。也就是使用值來存儲多個名稱值對兒。 所謂Web離線應用,就是在設備不能上網(wǎng)的情況下仍然可以運行的應用。開發(fā)離線Web應用需要幾個步驟:(1)確保應用知道設備是否能上網(wǎng);(2)應用還必須能訪問一定的資源(圖像、JavaScr...
摘要:的離線存儲使用以及工作原理解答使用方式在頁面頭部中加入一個的屬性就可以的書寫方式,如下表示需要離線存儲的資源列表表示在中列出的資源只有在在線情況下才能訪問,不會被離線存儲,若和中都有這個資源則會離線存儲,因為的優(yōu)先級更高表示如果第一個資源訪 HTML5的離線存儲使用以及工作原理解答? 使用方式:在頁面頭部中加入一個manifest的屬性就可以 ... cache.manifest...
閱讀 866·2023-04-26 00:11
閱讀 2666·2021-11-04 16:13
閱讀 2116·2021-09-09 09:33
閱讀 1483·2021-08-20 09:35
閱讀 3836·2021-08-09 13:42
閱讀 3615·2019-08-30 15:55
閱讀 1073·2019-08-30 15:55
閱讀 2228·2019-08-30 13:55