新聞中心
bom和dom有什么區(qū)別?
BOM是瀏覽器對象模型,用來獲取或設(shè)置瀏覽器的屬性、行為,例如:新建窗口、獲取屏幕分辨率、瀏覽器版本號等。

為東西湖等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及東西湖網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、網(wǎng)站制作、東西湖網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
DOM是文檔對象模型,用來獲取或設(shè)置文檔中標簽的屬性,例如獲取或者設(shè)置input表單的value值。 BOM的內(nèi)容不多,主要還是DOM。 由于DOM的操作對象是文檔(Document),所以dom和瀏覽器沒有直接關(guān)系。
BOM的核心是window,而window對象又具有雙重角色,它既是通過js訪問瀏覽器窗口的一個接口,又是一個Global(全局)對象。這意味著在網(wǎng)頁中定義的任何對象,變量和函數(shù),都以window作為其global對象。
DOM和BOM的區(qū)別?
文檔對象模型(Document Object Model,簡稱DOM),是W3C組織推薦的處理可擴展標志語言的標準編程接口。Document Object Model的歷史可以追溯至1990年代后期微軟與Netscape的“瀏覽器大戰(zhàn)”,雙方為了在JavaScript與JScript一決生死,于是大規(guī)模的賦予瀏覽器強大的功能。微軟在網(wǎng)頁技術(shù)上加入了不少專屬事物,計有VBScript、ActiveX、以及微軟自家的DHTML格式等,使不少網(wǎng)頁使用非微軟平臺及瀏覽器無法正常顯示。DOM即是當(dāng)時蘊釀出來的杰作。
BOM(Browser Object Mode) 是指瀏覽器對象模型,是用于描述這種對象與對象之間層次關(guān)系的模型,瀏覽器對象模型提供了獨立于內(nèi)容的、可以與瀏覽器窗口進行互動的對象結(jié)構(gòu)。BOM由多個對象組成,其中代表瀏覽器窗口的Window對象是BOM的頂層對象,其他對象都是該對象的子對象。
dom包含bom嗎?
包含
javacsript是通過訪問BOM(Browser Object Model)對象來訪問、控制、修改客戶端(瀏覽器),由于BOM的window包含了document,window對象的屬性和方法是直接可以使用而且被感知的,因此可以直接使用window對象的document屬性,通過document屬性就可以訪問、檢索、修改XHTML文檔內(nèi)容與結(jié)構(gòu)。因為document對象又是DOM(Document Object Model)模型的根節(jié)點。可以說,BOM包含了DOM(對象),瀏覽器提供出來給予訪問的是BOM對象,從BOM對象再訪問到DOM對象,從而js可以操作瀏覽器以及瀏覽器讀取到的文檔。
為什么我不建議使用npm做前端包管理?
會產(chǎn)生冗余問題
前端與后端使用同一套包管理軟件可以減少公共部分的耦合,但是會導(dǎo)致不必要的冗余。
比如一個bootstrap包,是不可能被后端使用的。但是如果統(tǒng)一使用npm管理,每次npm install都會安裝bootstrap包,而后端一輩子都用不倒,完全是浪費帶寬、存儲空間、時間。并且你在運行后端前,每次都安裝個bootstrap,你不覺得惡心嗎?
運行環(huán)境完全不同
前端與后端的運行環(huán)境是完全不同的,前端運行于瀏覽器內(nèi)(即主要是DOM與BOM環(huán)境,相對受限),后端則運行于OS內(nèi)(有無限的API與可能性)。所以這兩種開發(fā)環(huán)境是完全不同的。不同的開發(fā)環(huán)境使用同一個包管理文件顯然是不合時宜的,也不符合模塊化的理念。
開發(fā)人員也可能不同
前端與后端通常是不同的開發(fā)團隊,因些前端關(guān)注的是HTML,CSS,DOM,BOM, js的UI庫與動作庫。而后端關(guān)注的是性能,安全,效率,數(shù)據(jù),緩存,用戶管理。他們可能都會用到gulp/grunt,而后端通常不會用到webpack,wiredep,bootstrap, jQuery這類純前端的包。所以強行將他們捆綁在一起是沒有必要的。
同構(gòu)包可以分開打包
由于isomorphic js的流行,同構(gòu)包也會越來越多。但是其實你會發(fā)現(xiàn),不管如何同構(gòu),前后端的運行環(huán)境還是不同的。所以同構(gòu)包的調(diào)用環(huán)境還是不一樣的。前端的包通常需要通過browserify,webpack或者gulp等工具發(fā)布成前端可用的包。跟npm包直接通過package.json決定從什么地方接入是不同的。即使npm可以為前端包提供字段供前端接入,也會顯得非常混亂。
到此,以上就是小編對于為什么會有dom和sub的問題就介紹到這了,希望這4點解答對大家有用。
文章題目:bom和dom有什么區(qū)別?(為什么要分dom和bom)
文章路徑:http://www.dlmjj.cn/article/coicppd.html


咨詢
建站咨詢
