日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
前端基礎(chǔ)知識整理匯總一

又是一年跳槽季,最近聽到最多的消息就是,我們公司又有同事離職了,所以,如果你想在職場上掌握主動權(quán),你就需要比別人更加努力,更加夯實的技能基礎(chǔ),不然你拿什么去跟別人拼?所以,今天我們跟大家分享一些前端基礎(chǔ)知識,希望對你有所幫助。

創(chuàng)新互聯(lián)建站專注于新興企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都商城網(wǎng)站開發(fā)。新興網(wǎng)站建設(shè)公司,為新興等地區(qū)提供建站服務(wù)。全流程按需搭建網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)

HTML頁面的生命周期

HTML頁面的生命周期有以下三個重要事件:

  • DOMContentLoaded —— 瀏覽器已經(jīng)完全加載了 HTML,DOM 樹已經(jīng)構(gòu)建完畢,但是像是 和樣式表等外部資源可能并沒有下載完畢。
  • load —— 瀏覽器已經(jīng)加載了所有的資源(圖像,樣式表等)。
  • beforeunload —— 當用戶即將離開當前頁面(刷新或關(guān)閉)時觸發(fā)。正要去服務(wù)器讀取新的頁面時調(diào)用,此時還沒開始讀取;
  • unload —— 在用戶離開頁面后觸發(fā)。從服務(wù)器上讀到了需要加載的新的頁面,在即將替換掉當前頁面時調(diào)用。
  • 每個事件都有特定的用途:
  • DOMContentLoaded —— DOM 加載完畢,所以 JS 可以訪問所有 DOM 節(jié)點,初始化界面。
  • load —— 附加資源已經(jīng)加載完畢,可以在此事件觸發(fā)時獲得圖像的大小(如果沒有被在 HTML/CSS 中指定)
  • beforeunload —— 該事件可用于彈出對話框,提示用戶是繼續(xù)瀏覽頁面還是離開當前頁面。
  • unload —— 刪除本地數(shù)據(jù)localstorage等

DOMContentLoaded

DOMContentLoaded 由 document 對象觸發(fā)。使用 addEventListener 來監(jiān)聽它:

 
 
 
 
  1. document.addEventListener("DOMContentLoaded", () => {});

DOMContentLoaded 和腳本

當瀏覽器在解析 HTML 頁面時遇到了 標簽,將無法繼續(xù)構(gòu)建DOM樹(UI 渲染線程與 JS 引擎是互斥的,當 JS 引擎執(zhí)行時 UI 線程會被掛起),必須立即執(zhí)行腳本。所以 DOMContentLoaded 有可能在所有腳本執(zhí)行完畢后觸發(fā)。

外部腳本(帶 src 的)的加載和解析也會暫停DOM樹構(gòu)建,所以 DOMContentLoaded 也會等待外部腳本。帶 async 的外部腳本,可能會在DOMContentLoaded事件之前或之后執(zhí)行。帶 defer 的腳本肯定會在在DOMContentLoaded事件之前執(zhí)行。

DOMContentLoaded 與樣式表

外部樣式表并不會阻塞 DOM 的解析,所以 DOMContentLoaded 并不會被它們影響。

load

window 對象上的 load 事件在所有文件包括樣式表,圖片和其他資源下載完畢后觸發(fā)。

 
 
 
 
  1. window.addEventListener('load', function(e) {...});
  2. window.onload = function(e) { ... };

beforeunload

當窗口即將被卸載(關(guān)閉)時, 會觸發(fā)該事件。此時頁面文檔依然可見, 且該事件的默認動作可以被取消。beforeunload在unload之前執(zhí)行,它還可以阻止unload的執(zhí)行。

 
 
 
 
  1. // 推薦使用
  2. window.addEventListener('beforeunload', (event) => {
  3.   // Cancel the event as stated by the standard.
  4.   event.preventDefault();
  5.   // Chrome requires returnValue to be set.
  6.   event.returnValue = '關(guān)閉提示';
  7. });
  8. window.onbeforeunload = function (e) {
  9.   e = e || window.event;
  10.   // 兼容IE8和Firefox 4之前的版本
  11.   if (e) {
  12.     e.returnValue = '關(guān)閉提示';
  13.   }
  14.   // Chrome, Safari, Firefox 4+, Opera 12+ , IE 9+
  15.   return '關(guān)閉提示';
  16. };

unload

用戶離開頁面的時候,window 對象上的 unload 事件會被觸發(fā),無法阻止用戶轉(zhuǎn)移到另一個頁面上。

 
 
 
 
  1. // 推薦使用
  2. window.addEventListener("unload", function(event) { ... });
  3. window.onunload = function(event) { ... };

readyState

document.readyState 表示頁面的加載狀態(tài),有三個值:

  • loading 加載 —— document仍在加載。
  • interactive 互動 —— 文檔已經(jīng)完成加載,文檔已被解析,但是諸如圖像,樣式表和框架之類的子資源仍在加載。
  • complete —— 文檔和所有子資源已完成加載。 load 事件即將被觸發(fā)。

可以在 readystatechange 中追蹤頁面的變化狀態(tài):

 
 
 
 
  1. document.addEventListener('readystatechange', () => {
  2.   console.log(document.readyState);
  3. });

Script標簽:向HTML插入JS的方法

沒有 defer 或 async,所有'字符串,如果必須出現(xiàn),必須使用轉(zhuǎn)義標簽‘\’

  •     alert('<\/script>');
  •   }
  • 包含在

  • // 帶有src屬性的元素不應(yīng)該在標簽之間包含額外的js代碼,即使包含,只會下載并執(zhí)行外部文件,內(nèi)部代碼也會被忽略。
  • 與嵌入式j(luò)s代碼一樣, 在解析外部js文件時,頁面的處理會暫時停止。

    改變腳本行為的方法

    1. defer: 立即下載,延遲執(zhí)行

    加載和渲染后續(xù)文檔元素的過程將和腳本的加載并行進行(異步),但是腳本的執(zhí)行會在所有元素解析完成之后。腳本總會按照聲明順序執(zhí)行。

    在DOMContentLoaded事件之前執(zhí)行。

     
     
     
     

    2. async: 異步腳本

    加載和渲染后續(xù)文檔元素的過程將和腳本的加載與執(zhí)行并行進行(異步)。但是async 在下載完畢后的執(zhí)行會阻塞HTML的解析。腳本加載后馬上執(zhí)行,不能保證異步腳本按照他們在頁面中出現(xiàn)的順序執(zhí)行。

    一定會在load事件之前執(zhí)行,可能會在DOMContentLoaded事件之前或之后執(zhí)行。

     
     
     
     

    區(qū)別:

    meta

    META標簽是HTML標記HEAD區(qū)的一個關(guān)鍵標簽,它提供的信息雖然用戶不可見,但卻是文檔的最基本的元信息。 除了提供文檔字符集、使用語言、作者等網(wǎng)頁相關(guān)信息外,還可以設(shè)置信息給搜索引擎,目的是為了SEO(搜索引擎優(yōu)化)。

    HTML 元素表示那些不能由其它 HTML 元相關(guān)(meta-related)元素((,