瀏覽器為什麼不繼續優化 DOM 操作的效能,現在社群的努力方向合理嗎?

時間 2021-05-07 07:49:06

1樓:

沒有為什麼,就只是Google開發v8的時候還沒意識到虛擬dom這種東西, 沒那個意識就沒加入。後面我覺得什麼虛擬dom、雙向繫結什麼的都會內建到瀏覽器裡面, 而且還會加新的功能。就像querySelector這個本來是jquery的, 後來變成了瀏覽器原生的。

2樓:eechen

雙向資料繫結本質就是監聽JS變數的變化,同時通過事件監聽DOM中輸入元素的變化,更像是自動擋。通過引入虛擬DOM這個機制提高換擋效率,避免資料繫結後對DOM進行過多的無效操作,代價是在JS中維護虛擬DOM這個資料結構需要額外的記憶體,進行diff操作時需要額外的CPU計算。patch時才會進行真實的DOM操作,觸發瀏覽器重新渲染。

所以虛擬DOM很吃JS直譯器的效能。

而jQuery相當於手動擋,JS變數發生變化後,需要開發者手動更新DOM(手動換擋),沒有額外的記憶體開銷和diff計算。為了避免手動拼接HTML(維護性太差),可以用前端模板引擎比如JSrender來簡化HTML的構造。

所以對於普通開發者來說,能做的優化主要就是減少無效的DOM操作。提高DOM操作效能主要還是靠瀏覽器廠商。

DOM就不是一種適合高頻率頻繁修改的結構(DOM樹適合查詢),如果要頻繁渲染,比如每秒渲染60次的遊戲,應該用畫布canvas,直接用座標來畫。

3樓:

這問題的邏輯就埋了個坑,把【瀏覽器廠商】和【前端社群】搞混了。前端開發者指的就是寫瀏覽器應用(欽定語言就是 JS)的這群人,你問大家怎麼不去拿 C++ 改瀏覽器本身?

你們抓的是魯迅,和我周樹人有什麼關係.jpg

要是前端開發者都得研發瀏覽器的話,鴻蒙開發者不就得學習如何研發 Office 了嗎(攤手)

4樓:方應杭

手機廠商為什麼不優化下電池續航?

優化了,然後發現使用者用電池用得更兇了,連 120 hz 都出來了顯示卡廠商為什麼不提公升顯示卡的效能?

優化了,然後發現遊戲對顯示卡的消耗更大了,連光追都出來了瀏覽器廠商為什麼不優化 DOM 操作的效能?

優化了,然後發現前端程式設計師對 DOM 的操作更頻繁、更粗粒度了。

總而言之:需求無止境。完。

5樓:大黃

不同崗位的程式設計師,關注和解決的問題不盡相同。

做個不是非常恰當的對比,作業系統的優化,硬體的提公升一樣能提高web的效能,但肯定不是前端社群會去關注的。

那底層服務廠商關注了瀏覽器效能問題嗎?答案是肯定的,chrome、v8不就是靠啟動快、執行快,把IE趕下神壇的麼,

在移動端,效能這個問題更明顯,不過優化webview空間有限,就搞出react native和flutter了

6樓:獨慎之

首先你要明白一點,社群搞各種技術框架,為的不是提高效能,而是為了提高開發效率,因為對於如今越來越大的應用來說,效能不是瓶頸,開發效率才是

js操作dom肯定會存在效能問題,畢竟是不同語言的互動,但是即使優化,這也是瀏覽器廠商的事情,和js社群的各種技術創新關係不大

7樓:淺淺淺紅莉棲

底層是各大廠商的管理,不過我估計你說的是實現層,實現層各個前端框架已經做了優化。你說的要關注dom操作效能,就好像熱心群眾一樣。

以搜狗高速瀏覽器為代表的國產瀏覽器為什麼不根據 X UA Compatible IE Edge,chrome 1 之類網頁開發者的宣告來切換至 WebKit 或 IE9 模式?

咳咳,做過瀏覽器,看到各位都說得很動聽,來打個醬油。1.這個compatible 標籤並不是標準,只不過某些瀏覽器在用而已,我寫個瀏覽器為什麼要遵守?憑這一點就來噴中國產瀏覽器,噴錯了點。2.你知道網路那麼大,但真正會動手寫這個標籤的有多少嗎?技術上可行,事實上幾乎沒有誰會寫這個東西。IE 最流行的...

什麼瀏覽器好用?為什麼?

Edison 看你主要拿瀏覽器幹什麼用,畢竟每款瀏覽器都有自己的特色功能,看你是需要pc端的還是移動端的了。移動端大大小小的瀏覽器我都試過一遍,目前留存下來的有Edge chrome kiwi 星塵 via pc端這邊有edge chrome 百分 星願 vivaldi這幾款比較好用。 放山野豬 看...

為什麼在瀏覽器搜尋會卡

娜寶寶 唉呀媽呀,我我我,我來回答,我是蒙古族,所以我推測可能是 蒙古族青年歌手乙個叫阿穆隆的曾經酒駕開車撞死活人,蹲過監獄所以大家可能是把他倆弄混了,然後他們兩個又都是蒙古族,都是歌手,所以才現實這個詞條吧 人家是體制內的國家隊歌手 你說呢?要真有案底,政審都過不了。17歲之前是內蒙文工團的領舞,...