在阿里的幾次面試中,總是被問到移動端和PC端有什么區別,當時回答的時候主要是回答了在兼容性、網速、適配、頁面布局等方面的不同,但是還是很不系統,所以這里做一個總結。
第一: PC考慮的是瀏覽器的兼容性,而移動端開發考慮的更多的是手機兼容性,因為目前不管是android手機還是ios手機,一般瀏覽器使用的都是webkit內核,所以說做移動端開發,更多考慮的應該是手機分辨率的適配,和不同操作系統的略微差異化。
第二: 在部分事件的處理上,移動端多出來的事件是觸屏事件,而缺少的是hover事件。 另外包括移動端彈出的手機鍵盤的處理,這樣的問題在PC端都是遇不到的。
第三: 在布局上,移動端開發一般是要做到布局自適應的,我使用的一直是rem布局,感覺很好。
第四: 在動畫處理上,PC端由於要考慮IE的兼容性,所以通常使用JS做動畫的通用性會更好一些,但是CSS3做了很大的犧牲, 而在手機端,如果要做一些動畫、特效等,第一選擇肯定是CSS3, 既簡單、效率又高。
第五: 微信的一些接口組好能去實現一遍,熟悉一下肯定是有好處的,比如通過微信分享文章,title、description、icon等圖標的配置,這些還是要會的。
第六: 百度地圖的一些API接口,也得去實現一下,這些對於移動端來說,LBS是一個非常重要的特性,所以地圖這塊肯定是要了解的,在加上百度地圖這塊已經是一個比較成熟的平台了,所以學起來也比較容易。
第七: CSS3的動畫一定要比較熟練,這在移動端用的還是比較多的。
第八: 一般pc端用jquery,移動端用zepto,因為移動端的流量還是比較重要的, 所以引入的資源或者插件,能小則小,一個30k的資源和一個80k的資源,在移動端的差別還是挺大的。
而未壓縮的jquery是262kb, 壓縮的jquey是83kb,可見兩者的差別之大。
第九:最好能掌握一套完整的前端開發架構,比如模塊化、打包、壓縮、緩存、有條件的還可以做一下自動化測試等等,比較好用的有fis,另外,想要快速提升自己的前端開發技術,鑽研前端架構這塊是一個非常好的方向。
第十: 性能優化,包括首屏的打開速度、用戶響應延遲、渲染性能、動畫幀率等在手機上都需要特別注意。
第十一: 比如在手機上的300ms的延遲,這在PC端是沒有的,如果我們希望做成webapp,那么自然就不需要這300ms的延遲,所以可以使用hammer-time.js來移除這300ms的延遲。
本文整理自:知乎