公告:攜程招聘java、前端、測試、產品等,請發簡歷至[email protected],幫內推!

js處理大數據數組循環的一些性能優化

前言

上一節我寫了觀察者模式,是一種設計模式。這些設計模式就是一些思路。當然,關于排序,有快速排序法,關于查找有二分查找法等等,這些都為我們提供了一些思路。那么對于避免不了的大數據循環,分類,查找,有什么更加提高性能,或者說是降低內存消耗的方法嗎?

案例

假設后端返回數據如下:

Proxy和defineProperty實現數據觀察(觀察者模式)

前言

說到vue的原理,大家都知道是通過defineProperty實現對數據的的觀察,也知道vue3.0改成了Proxy。關于代理模式(其實也是一種設計模式),最新es6 有實現代理的方法,即我們可以用Proxy。

關于Proxy,文檔還是阮一峰老師的es6,可以結合reflect一起學習。這里就不多用語言來描述了。

defineProperty

我們知道,vue中,有$set方法來強制視圖更新,當然也有數組的一些操作。其實這是defineProperty 來觀察對象或者數組的一些缺陷。簡單實現一個defineProperty觀察數據的方法。

匯總常用的js對象Object的深比較方法

前言

之前文章有些深拷貝和淺拷貝,這篇文章簡單總結常用的深度比較方法,這些方法在react中用的特別多,特別是生命周期里面prop對比。因此,react和immutable天生結合性比較好。假設你項目中沒有用immutable這種第三方庫,那么實現深度比較的方法,在這里總結一下!

方法一

利用空白gif圖片,實現數據上報,數據埋點

前言

利用空白gif圖片,實現數據上報,數據埋點。開發中經常需要統計頁面點擊,曝光,包括一些數據埋點。當然,埋點數據上報的方式有很多,下面介紹純css的方式和一句話js方式。

純css方式

純css方式實現數據上報很簡單。原理就是利用css屬性,但是弊端也比較明顯,就是點擊只能加載一次。例如如下代碼,實現跟蹤botton1和botton2的點擊事件

任选9场吧 排列5选号绝招