Javascript 大數(shù)組的分時(shí)優(yōu)化處理
來源:程序員人生 發(fā)布時(shí)間:2013-10-20 18:22:43 閱讀次數(shù):2686次
靈感來自 Nicholas C. Zakas 的 Timed array processing in JavaScript.
做了個(gè)加載大容量表格數(shù)據(jù)的實(shí)例:array-processing.html
幾點(diǎn)說明:
- timedChunk 函數(shù)是精華,里面的 50ms 來自 Response Time Overview 中的調(diào)查結(jié)果:100ms 內(nèi)的響應(yīng)能讓用戶感覺非常流暢。50ms 是 Nicholas 針對(duì) JavaScript 得出的最佳經(jīng)驗(yàn)值。
- setTimeout 延時(shí) 25ms, 是因?yàn)闉g覽器的時(shí)間分辨率問題。25ms 可以保證主流瀏覽器都順暢(有喘息的機(jī)會(huì)去更新 UI)。
- 上面的實(shí)例,傳統(tǒng)方式加載會(huì)讓瀏覽器在加載數(shù)據(jù)期間,無法更新界面和響應(yīng)任何操作。采用分時(shí)加載,則可以讓瀏覽器始終保持可響應(yīng)狀態(tài),提升界面流暢性和用戶體驗(yàn)。
- 順便八卦:Safari 4 和 Chrome 2 真不是吹的,速度嗖嗖的。相比,F(xiàn)irefox 和 IE 慢得夠可以。
- Opera 依舊保持怪胎特性,傳統(tǒng)方式加載也能保持界面的更新和響應(yīng),可惜速度不佳,喜憂參半。
- 最后,很欽佩 Nicholas C. Zakas. 短短的一段代碼,蘊(yùn)含了博學(xué)的可用性知識(shí) + 專業(yè)的 JS 技能 + 細(xì)心的瘋狂測試。如此牛人,實(shí)在是學(xué)習(xí)的絕佳榜樣。
出處:http://lifesinger.org
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)