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

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


咨詢
建站咨詢
