【什么是DOM和BOM】
什么是DOM和BOM?
DOM?(Document?),簡稱文檔對象模型。通過創建樹來表示文檔,描述了處理網頁內容的方法和接口。用DOM API可以輕松地刪除、添加和替換節點。
BOM (Browser object model),簡稱瀏覽器對象模型。描述了與瀏覽器進行交互的方法和接口
BOM的核心是window,而window對象又具有雙重角色,它既是通過js訪問瀏覽器窗口的一個接口,又是一個Global(全局)對象。這意味著在網頁中定義的任何對象,變量和函數,都作為全局對象的一個屬性和方法存在.
從window.document已然可以看出,DOM的最根本的對象是BOM的window對象的子對象document。推理如下:
如何是實現瀏覽器內多個標簽頁之間的通信?
1.定時器Setlnterval+Cookie
2LocalStaorge
3.WebSocket通訊
4.SharedWorker
5.postMessage
對DOMContentLoaded,load,beforeunload,unload幾個頁面生命周期事件的理解?
HTML 頁面的生命周期包含三個重要事件:
- DOMContentLoaded —— 瀏覽器已完全加載 HTML,并構建了 DOM 樹,但像 <img> 和樣式表之類的外部資源可能尚未加載完成。
- load —— 瀏覽器不僅加載完成了 HTML,還加載完成了所有外部資源:圖片,樣式等。
- beforeunload / unload —— 當用戶正在離開頁面時。
每個事件都是有用的:
- DOMContentLoaded 事件 —— DOM 已經就緒,因此處理程序可以查找 DOM 節點,并初始化接口。
- load 事件 —— 外部資源已加載完成,樣式已被應用,圖片大小也已知了。
- beforeunload 事件 —— 用戶正在離開:我們可以檢查用戶是否保存了更改,并詢問他是否真的要離開。
- unload 事件 —— 用戶幾乎已經離開了,但是我們仍然可以啟動一些操作,例如發送統計數據。
總結
頁面生命周期事件:
- 當 DOM 準備就緒時,document 上的 DOMContentLoaded 事件就會被觸發。在這個階段,我們可以將 JavaScript 應用于元素。
??????諸如 <script>...</script> 或 <script src="..."></script> 之類的腳本會阻塞 ?DOMContentLoaded,瀏覽器將等待它們執行結束。
????????圖片和其他資源仍然可以繼續被加載。
- 當頁面和所有資源都加載完成時,window 上的 load 事件就會被觸發。我們很少使用它,因為通常無需等待那么長時間。
- 當用戶想要離開頁面時,window 上的 beforeunload 事件就會被觸發。如果我們取消這個事件,瀏覽器就會詢問我們是否真的要離開(例如,我們有未保存的更改)。
- 當用戶最終離開時,window 上的 unload 事件就會被觸發。在處理程序中,我們只能執行不涉及延遲或詢問用戶的簡單操作。正是由于這個限制,它很少被使用。我們可以使用 navigator.sendBeacon 來發送網絡請求。
使用input標簽上傳圖片時,怎樣觸發默認拍照功能?
使用 capture 屬性(用于指定文件上傳控件中媒體拍攝的方式)
可選值:
- camera 打開攝像頭
- user 前置攝像頭
- environment 后置攝像頭?
- camcorder 錄像
- microphone 錄音
iinput上傳文件設置同時選擇多張?
通過input標簽設置multiple屬性
<input type = "file" name="files" multiple/>
如何禁止input展示輸入的歷史記錄?
在input中加入autocomplete=”off“
(autocomplete屬性是用來規定輸入字段是否自動完成的功能)
能否使用自閉合script標簽引入腳本文件?
不能。自閉合標簽來自于XML語法,而不是HTML語法。
頁面統計數據中。常用的PV、UV指標分別是什么?
PV(頁面訪問量):用戶每一次對網站中的每個網頁訪問均被記錄一個PV
UV(獨立訪客):是一個反映實際使用者的概念,每個UV相對于每個IP,更加準確地對應一個實際的瀏覽者是一個反映實際使用者的概念,每個UV相對于每個IP,更加準確地對應一個實際的瀏覽者。
簡單描述從輸入網址url到頁面顯示的過程?
大概過程如下:
HTTP1.0和HTTP2.0的區別
總的區別就是:
總結
以上是生活随笔為你收集整理的【什么是DOM和BOM】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 除去google工具栏启动的Google
- 下一篇: XStream null值序列化时不会显