您當前位置: 南順網絡>> 官方資訊>> 行業動態

為什么越來越少的人用jQuery

在原來的開發中,工程師們不會太糾結于性能問題。但是現在不同了,為了提高用戶體現,首要的就是解決瀏覽器繪制所帶了的性能問題。經典的莫過重繪和回流這兩個概念。

**重繪:**就是頁面重新進行繪制,比方說,修改一個元素的背景顏色。

**回流:**一般來說,瀏覽器進入頁面的時候就已經進行了一次回流,回流其實指的就是頁面重新進行排版布局。

既然我們想提高性能,那么就可以先從這兩概念入手,肯定是以小的代價更新頁面是提高性能好的手段。但可惜的是,jQuery并沒有做到。為什么這么說,請看以下分析:

當我們拿到一組新聞數據要渲染到ul標簽里時,通常我們會先將新聞數據逐條進行字符串拼接,緊接著使用$符選擇ul元素,并修改ul的innerHTML的值為拼接好的字符串(使用html API),此時完成了次渲染。這次頁面進行了重繪(這時必然的),首先不分析的性能好或壞,用下一個說明將更加有力。

比如說我們這時多了一個換一換按鈕。在傳統開發模式中,這時的換一換按鈕肯定執行的還是上面的代碼,獲取元素,修改元素的innerHTML,但是現在問題出現了,就是我們有必要將所有元素重新刪除,再重新添加一遍嗎?答案肯定是不需要(下圖所示,創建一個元素的代價有多大)。



因為這時我們只需要將每一個li里的文字和a標簽里的鏈接修改即可,那顯然是沒有必要像上面那樣重新再添加一遍li的。因為一個DOM元素,可能包含上百條屬性,這對性能開銷是很大的。

那么現在出現的新概念 Virtual DOM(虛擬DOM),就可以解決這個問題。其實Virtual DOM就是對真實DOM節點的描述,通過改變Virtual DOM來以小變動來改變真實DOM(Virtual DOM不一定真的比jQuery性能更好)。


編輯:--ns868