国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

實(shí)踐中的電商前端優(yōu)化

Dongjie_Liu / 558人閱讀

摘要:前端優(yōu)化已經(jīng)是一個(gè)被寫爛的題材了。前端模板方案有很多。重繪是瀏覽器性能優(yōu)化的一個(gè)重點(diǎn),特別是針對(duì)的優(yōu)化。如果你對(duì)前端性能優(yōu)化有自己的想法,歡迎騷擾我。

前端優(yōu)化已經(jīng)是一個(gè)被寫爛的題材了。

雖千萬人吾往矣,這里我僅分享我的一些實(shí)踐經(jīng)驗(yàn)。

歡迎一起交流

歡迎關(guān)注我的個(gè)人公眾號(hào),不定期更新自己的工作心得。

正文如下

前端性能 1. 模塊化

嚴(yán)格來說,代碼模塊化并不能帶來性能上的提升,但我還是將模塊化提出來,因?yàn)樗娴暮苤匾匾綆缀跛械膬?yōu)化都與它息息相關(guān)。

常見的模塊化方案有:AMD、CMD、UMD、ES6

如何選擇?

團(tuán)隊(duì)習(xí)慣

個(gè)人偏好

業(yè)務(wù)需要

我靠!你怎么能把業(yè)務(wù)需要放在最后一個(gè)考慮?

因?yàn)闆]有哪一塊業(yè)務(wù)會(huì)因?yàn)槭褂昧瞬煌哪K化方案而產(chǎn)生不同的結(jié)果。

而且我覺得 軟件開發(fā)中的以人為本 用在這里剛好合適,其他地方就只能 呵呵了。畢竟業(yè)務(wù)高于一切,這是操守。

2. 緩存

緩存一定要加!

緩存一定要加!

緩存一定要加!

因?yàn)镃DN真的很貴。。。

沒有CDN?那就更得加緩存了!!!

緩存有很多方式,最為常見的就是下面這兩種了

瀏覽器304緩存

localstorage本地存儲(chǔ)

業(yè)界,一直有關(guān)于304緩存與localstorage性能的爭(zhēng)議,這里我們不討論兩者的差異,或性能問題。

我一向以業(yè)務(wù)導(dǎo)向選擇方案,這里我選擇的是localstorage,如果你愿意,你可以通過localstorage將緩存玩出一朵花出來。

你可以這么干:

通過localstorage存儲(chǔ)js、css資源;

資源版本控制;

只要你愿意,localstorage也可以控制緩存時(shí)間!通過寫一小段js代碼來實(shí)現(xiàn);

在活動(dòng)期間可以提前將活動(dòng)相關(guān)資源緩存至localstorage,減輕活動(dòng)當(dāng)日的CDN消耗,同時(shí)在提升用戶訪問速度的同時(shí),降低服務(wù)器端壓力。

PS:localstorage針對(duì)開發(fā)環(huán)境確實(shí)有點(diǎn)惡心,不過你可以在框架底層寫一小段代碼來支持不同環(huán)境下的緩存控制,例如:針對(duì)開發(fā)環(huán)境域名,禁止緩存,針對(duì)某個(gè)URL參數(shù)禁止緩存等。當(dāng)然,你也可以和我一樣寫一個(gè)chrome插件來控制緩存,高興就好!

所以,我的建議是能使用localstorage就是盡量使用localstorage。如果你司沒事也會(huì)搞一搞大促什么的,你就知道CDN有多貴了。

后續(xù)應(yīng)該會(huì)將我們針對(duì)localstorage的一套方案開源出來。

3. 懶加載 圖片懶加載

如果你是做Hybrid開發(fā),這真的有必要!

另外,寫一個(gè)圖片懶加載插件有多難?,這里已經(jīng)有人給出答案了,點(diǎn)擊查看

JS 懶加載

模塊化帶來的其中一個(gè)好處就是我們可以針對(duì)js資源進(jìn)行懶加載控制,RequireJS、SeaJS?你高興就好。

這里我們采用的是RequireJS,要問我為什么,也許是因?yàn)槲覀兪褂玫氖茿MD方案吧!要問我為什么使用AMD方案,我只能告訴你,因?yàn)槲腋吲d!以人為本不是嘛~

4. 前端模板渲染

相比拼接字符串,jQuery.append ,我們有了另一種選擇,前端模板。

前端模板方案有很多。這里我推薦騰訊的 tmodjs 。他的優(yōu)勢(shì)在于可以將前端模板預(yù)編譯成js文件,同時(shí)支持模塊加載。

如果你要問我為什么不能拼接字符串,又或者jQuery.append為什么不好,這也許是我下一篇文章的主題了。至少不是今晚的。或者你可以去研究一下瀏覽器的渲染機(jī)制呢?

5. DOM怎么寫很重要

瀏覽器有個(gè)機(jī)制叫做重繪,任何改變dom元素位置的操作都會(huì)引發(fā)瀏覽器重繪操作,這是無法避免的。重繪是瀏覽器性能優(yōu)化的一個(gè)重點(diǎn),特別是針對(duì)webview的優(yōu)化。

既然我們不能避免,那么我們能夠做什么呢?

雖然我們不能避免瀏覽器重繪的發(fā)生,但是我們可以通過精確的控制dom元素,來達(dá)到使瀏覽器的重繪范圍最小化的目的,這里我們可以借助瀏覽器的開發(fā)者工具針對(duì)頁(yè)面進(jìn)行調(diào)優(yōu)。

關(guān)于調(diào)優(yōu)也可以寫一篇文章了,如果你感興趣,我們可以私下聊一聊。

客戶端性能

代理webview發(fā)送ajax請(qǐng)求,據(jù)說這可以省去三次握手的時(shí)間?

iOS中使用WKWebView代替UIWebview,UIWebview是iOS8.0以前的產(chǎn)物,針對(duì)iOS8.0以后的系統(tǒng)建議使用WKWebView,經(jīng)過實(shí)際測(cè)試,性能大概能夠提升40%,同時(shí)穩(wěn)定性有很大程度的提升,幾乎是質(zhì)的提升。

webview支持加載webp格式圖片。

靜態(tài)資源預(yù)加載,除了localstorage的緩存機(jī)制,我們也可以利用客戶端針對(duì)前端靜態(tài)資源進(jìn)行緩存,在WIFI環(huán)境下,我們可以預(yù)先將靜態(tài)資源下載至本地。

服務(wù)端性能 1. 服務(wù)端渲染

在一個(gè)把前后端分離奉為葵花寶典的時(shí)代,提一句服務(wù)端渲染顯然是不合適的。

可是如果考慮到客戶端弱爆了的Webview,也許這是一個(gè)不錯(cuò)的選擇,畢竟服務(wù)端的性能要好很多。針對(duì)已經(jīng)前后端分離的項(xiàng)目,我建議可以嘗試使用Node.js針對(duì)頁(yè)面進(jìn)行直出,也是一個(gè)不錯(cuò)的選擇,Node.js的性能這里就不需要我累述了吧!

By the way, 首屏數(shù)據(jù)服務(wù)端輸出,配上懶加載一起,不要太爽哦。

2. 一個(gè)快速響應(yīng)的接口

一個(gè)快速響應(yīng)的接口真的很重要!!!

你可以通過優(yōu)化代碼,優(yōu)化sql,優(yōu)化緩存(redis Or memcached?),優(yōu)化Nginx配置?double 服務(wù)器?

Come On 總有點(diǎn)能做的!

總之~不要局限了自己。We Are Developer , Not 頁(yè)面仔!OK?

3. 圖片轉(zhuǎn)webp

由于webp格式的圖片并不是所有環(huán)境都支持,這時(shí)候需要配合不同的客戶端動(dòng)態(tài)返回相應(yīng)格式的圖片。

PS:如果你對(duì)前端性能優(yōu)化有自己的想法,歡迎騷擾我。我們之間也許只差一杯焦糖瑪奇朵

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/91115.html

相關(guān)文章

  • 實(shí)踐中的電商前端優(yōu)化

    摘要:前端優(yōu)化已經(jīng)是一個(gè)被寫爛的題材了。前端模板方案有很多。重繪是瀏覽器性能優(yōu)化的一個(gè)重點(diǎn),特別是針對(duì)的優(yōu)化。如果你對(duì)前端性能優(yōu)化有自己的想法,歡迎騷擾我。 前端優(yōu)化已經(jīng)是一個(gè)被寫爛的題材了。 雖千萬人吾往矣,這里我僅分享我的一些實(shí)踐經(jīng)驗(yàn)。 歡迎一起交流 歡迎關(guān)注我的個(gè)人公眾號(hào),不定期更新自己的工作心得。 showImg(https://segmentfault.com/img/remote...

    Michael_Ding 評(píng)論0 收藏0
  • 實(shí)踐中的電商前端優(yōu)化

    摘要:前端優(yōu)化已經(jīng)是一個(gè)被寫爛的題材了。前端模板方案有很多。重繪是瀏覽器性能優(yōu)化的一個(gè)重點(diǎn),特別是針對(duì)的優(yōu)化。如果你對(duì)前端性能優(yōu)化有自己的想法,歡迎騷擾我。 前端優(yōu)化已經(jīng)是一個(gè)被寫爛的題材了。 雖千萬人吾往矣,這里我僅分享我的一些實(shí)踐經(jīng)驗(yàn)。 歡迎一起交流 歡迎關(guān)注我的個(gè)人公眾號(hào),不定期更新自己的工作心得。 showImg(https://segmentfault.com/img/remote...

    lakeside 評(píng)論0 收藏0
  • 跨境電商Crazysales的高穩(wěn)定性架構(gòu)實(shí)踐

    摘要:是一家典型的跨境電商企業(yè),以澳洲和英國(guó)作為主要目標(biāo)市場(chǎng),產(chǎn)品大多數(shù)由國(guó)內(nèi)供應(yīng)商提供。跨境電商的典型架構(gòu)的核心業(yè)務(wù)系統(tǒng)及網(wǎng)店系統(tǒng)均搭建在的平臺(tái)之上,用進(jìn)行前端內(nèi)容分發(fā),而后端的數(shù)據(jù)維護(hù)平臺(tái)因?yàn)楣?yīng)商在國(guó)內(nèi),所以也在國(guó)內(nèi)。 Crazysales是一家典型的跨境電商企業(yè),以澳洲和英國(guó)作為主要目標(biāo)市場(chǎng),產(chǎn)品大多數(shù)由國(guó)內(nèi)供應(yīng)商提供。Crazysales不但是Amazon、eBay等大型電商平臺(tái)上...

    antyiwei 評(píng)論0 收藏0
  • 跨境電商Crazysales的高穩(wěn)定性架構(gòu)實(shí)踐

    摘要:是一家典型的跨境電商企業(yè),以澳洲和英國(guó)作為主要目標(biāo)市場(chǎng),產(chǎn)品大多數(shù)由國(guó)內(nèi)供應(yīng)商提供。跨境電商的典型架構(gòu)的核心業(yè)務(wù)系統(tǒng)及網(wǎng)店系統(tǒng)均搭建在的平臺(tái)之上,用進(jìn)行前端內(nèi)容分發(fā),而后端的數(shù)據(jù)維護(hù)平臺(tái)因?yàn)楣?yīng)商在國(guó)內(nèi),所以也在國(guó)內(nèi)。 Crazysales是一家典型的跨境電商企業(yè),以澳洲和英國(guó)作為主要目標(biāo)市場(chǎng),產(chǎn)品大多數(shù)由國(guó)內(nèi)供應(yīng)商提供。Crazysales不但是Amazon、eBay等大型電商平臺(tái)上...

    Anshiii 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<