最近一直在做h5的項目,對h5開發有了自己的理解。首先h5開發並不是指的html5的開發,而是指無線端的web開發,至於為什么叫h5開發,我覺得一方面是因為html5近幾年還是挺受關注,另一方面h5在無線端有比較好的支持。
大概從去年開始,好多人提出了pc已死的說法。其實比不是pc變弱了,反而是用戶在不斷增長。至於說pc已死,是因為無線實在是增長的太快了,就拿淘寶雙十一的成交量來看,大部分的流量已經轉向了無線。所以作為一名前端工程師,h5幾乎已經成為必會技能。
h5 vs pc
首先來對比一下h5和pc開發。傳統的pc開發可以說已經不必過多考慮性能,因為pc的內存和cpu支持一個單純地網頁還是足夠的(只要代碼不要太爛,例如出現死循環)。但是h5不同,一方面手機的性能不必pc(低端的手機尤為明顯),所以h5頁面要更多的考慮性能。另一方面手機的網絡環境復雜,如3g,2g網絡還是占很大比例,所以頁面的數據請求也是一大問題。更別說要兼容幾百種機型,幾十種操作系統。所以我覺得h5開發對比pc更難。
h5 vs 客戶端(android&ios)
相比h5,客戶端開發效果更好。但是為什么不全用客戶端開發呢?h5和客戶端的優缺點如下
客戶端
優點
1.體驗好,更加流暢,可以做到h5做不到的效果(例如滑動)。
2.更加安全,幾乎不會被攻擊。
3不要考慮js,css等額外資源請求。
缺點
1.發版時間長,快則一月兩次,慢則一月一次或幾月一次。
2.開發成本高。
3.沒有h5靈活。
h5
優點
1.隨時可以發布。
2.開發成本低。
3.可以投放到各個終端。
缺點
1.體驗沒客戶端好,主要流暢度和加載速度。
2.不安全
3.網絡消耗大。
可以看出來,客戶端和h5幾乎是互補。為了能讓h5能盡量消除不足,出現了好多解決方案,例如離線包(將js,css等靜態資源緩存到手機內存中)。
h5開發注意事項
1.單位不能完全用像素(px),因為手機的大小不一,像素不能做到適配,所以圖片等需要適配的元素要用相對單位rem或em(幾乎都用rem)。
2.水果的retina屏的每個點堆積一個以上像素點,所以對於retina屏的某些情況要做特殊處理,例如1px邊框,具體解決方法可以在網上找到。
3.盡量減少網絡請求,必要的話要對弱網下做降級處理。
總結
h5開發從去年才真正火了起來,發展速度實在驚人(好多公司優先無線)。好多公司也投入很大的經歷到對如何提高h5的性能,並且取得了一定的成果,例如之前提到的離線包就很好的提高了加載速度。但是我們也不得不思考,如果有一天手機的性能足夠的好,網速足夠的快(別現在wifi還快,不存在2,3g的網絡),我們的研究方向又在哪里。