日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【什么是DOM和BOM】

發布時間:2023/12/16 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【什么是DOM和BOM】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是DOM和BOM?

DOM?(Document?),簡稱文檔對象模型。通過創建樹來表示文檔,描述了處理網頁內容的方法和接口。用DOM API可以輕松地刪除、添加和替換節點。

BOM (Browser object model),簡稱瀏覽器對象模型。描述了與瀏覽器進行交互的方法和接口

BOM的核心是window,而window對象又具有雙重角色,它既是通過js訪問瀏覽器窗口的一個接口,又是一個Global(全局)對象。這意味著在網頁中定義的任何對象,變量和函數,都作為全局對象的一個屬性和方法存在.

從window.document已然可以看出,DOM的最根本的對象是BOM的window對象的子對象document。推理如下:

  • js是通過訪問BOM對象來訪問、控制、修改客戶端(瀏覽器)。
  • 由于BOM的window包含了document,window對象的屬性和方法是可以直接使用而且被感知的,因此可以直接使用window對象的document屬性,通過document屬性就可以訪問、檢索、修改XHTML文檔內容與結構。
  • 因為document對象又是DOM模型的根節點,可以說BOM包含了DOM(對象)。
  • 瀏覽器提供出來給予訪問的是BOM對象,從BOM對象再訪問到DOM對象,從而js可以操作瀏覽器以及瀏覽器讀取到的文檔。
  • 如何是實現瀏覽器內多個標簽頁之間的通信?

    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到頁面顯示的過程?

    大概過程如下:

  • 輸入網址
  • DNS解析
  • 發起TCP連接
  • 客戶端發送HTTP請求
  • 服務器處理請求并返回HTTP報文
  • 瀏覽器解析渲染頁面
  • 連接結束
  • HTTP1.0和HTTP2.0的區別

    總的區別就是:

  • HTTP/2采用二進制格式而非文本格式
  • HTTP/2是完全多路復用的,而非有序并阻塞的——只需一個連接即可實現并行
  • 使用報頭壓縮,HTTP/2降低了開銷
  • HTTP/2讓服務器可以將響應主動“推送”到客戶端緩存中
  • 總結

    以上是生活随笔為你收集整理的【什么是DOM和BOM】的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。