前一段时间应Boss要求,给开发组同事做了一次关于前端技术的演讲,我整理了现在项目遇到的很多问题,和未来规划。我还特意去了一趟上海,求教朋友一些前端架构问题,他说我遇到的问题具有很广泛的普遍性,很多团队都有遇到,于是我抽空整理出来。
Mobile Web常见技术问题和规划
现状
一、目前前端技术
(1)JS功能库:jQuery和Zepto混用;
(2)页面之间传递数据方法:url传递数据;
(3)本地数据存储cookie;
二、现存在的问题
(1)页面js以及css文件过多过大;
(2)JS库和插件引用不规范不统一;
(3)HTML片段管理和渲染方法需要改进和优化;
(4)没有进行JS模块化,通用方法未提出公用;
(5)线上JS和CSS代码未做压缩处理;
(6)没有数据缓存和更新机制;
(7)静态文件images需要规划管理;
规划
一、统一JS使用规范和基本解决方案
(1)全局使用JS功能库Zepto
逐步将项目中每个页面的jQuery替换成Zepto,解决两者的兼容差异,和Zepto的功能缺失;
(2)全局引入移动点击事件处理方案Fastclick
解决click在移动设备上300ms延迟和点透bug;
(3)统一HTML渲染方法
从原有HTML字符串拼接逐步改为使用前端模板渲染引擎doT.js;
(4)数据缓存及更新机制
本地数据localStorage缓存一些ajax请求的数据,更新时间等机制写成公用的JS方法;
(5)JavaScript模块化
CMD or AMD,计划引入seajs模块加载器;
二、布局和CSS开发
(1) 公用样式文件的维护、CSS文件目录管理规范、单个页面CSS文件引入规范
- reset.css (样式重置表)
- common.css (公用样式表)
- page.css (本页面样式)
(2) 将JS动画效果逐步使用CSS3的动画进行取代
尽可能调用CSS3硬件加速
(3) 后期有待选型和研究的问题
- 布局逐步放弃float布局,还是改用flex-box?
- REM or 百分比布局选型?
- LESS (SASS)是否适合引入?
三、前端代码可维护性
(1)命名规范
- 语义化命名
- CSS命名建议使用中杠来命名:help-guest-regist
- JS建议驼峰命名法:helpGuestRegist (方法命名尽可能的语义化和完整)
(2)结构html、样式css、行为js分离
- 避免HTML中写CSS样式
- 避免HTML中写JS语句
(3)JavaScript全局变量
严格限制JS中全局变量的数量,避免定义过多全局变量;
注: 代码规范参考《编写可维护的JavaScript》
四、前端工作流改进
(1)多设备多浏览器自动同步刷新工具
(2)前端代码上线前自动化处理
- JS和CSS代码的压缩;
- 给js/css/image文件版本号(文件指纹):解决浏览器和微信强缓存问题;
- 将页面引入大量js和css文件合并成一个或多个文件(待解决):减少http请求;
注:目前打算使用gulp工具实现发布前的文件处理的环节;
五、项目前端架构调整(长期规划)
SPA(Single-page application)
优点:
- 可以在页面切换间平滑过渡,增加Loading动画,类似native app;
- 可以在各个页面间传递数据,不依赖URL;
- 可以选择性的保留状态;
- 避免了公共JS的反复执行,如无需在各个页面打开时都判断是否登录过等等;
- 减少了请求体积,节省流量,加快页面响应速度;
缺点:
- 前期开发复杂度大大提升,工期过长,涉及方面过多,需要长期进行规划;
MVC:
计划采用Backbone.js
资料:
http://isux.tencent.com/h5-performance.html
相关推荐
《Programming the Mobile Web》不仅是一本关于移动网页开发的技术手册,更是引导开发者走出误区、掌握核心技术的重要指南。通过学习本书,开发者不仅可以获得实用的编码技巧,还能深刻理解移动网络的本质和发展趋势...
综上所述,这本教程书籍的阅读者将通过学习《使用jQuery Mobile掌握移动Web应用(第三版)》,掌握到使用jQuery Mobile框架创建和优化移动Web应用所需的技术和知识,进而能够在移动Web开发领域中提升自己的专业能力...
这部分内容对于初学者来说非常有用,帮助他们理解jQuery Mobile的工作原理及其与传统Web开发技术之间的区别。 2. **开发环境搭建**:接下来,作者可能会指导读者如何设置开发环境,包括安装必要的工具如文本编辑器...
然而,在实际部署和使用过程中,用户可能会遇到一系列技术问题,本文将针对泛微e-mobile的常见问题进行梳理,并提供相应的解决方法。 首先,当引导程序启动后,如果访问引导程序显示“无法显示该网页”,可能的原因...
《Head First Mobile Web+源码》是一本专为移动Web开发设计的图书,它深入浅出地介绍了在当今移动设备上构建高效、响应式和用户体验优秀的Web应用的关键技术和策略。这本书以其独特的“Head First”教学风格,使得...
- **性能监控**:使用工具和技术监测应用性能,及时发现并解决问题。 #### 结论 《使用Kendo UI Mobile与ASP.NET Web API构建移动应用》不仅是一本技术指南,更是实践者的心得分享。通过本书的学习,开发者不仅...
- 通过对实际项目中的常见问题及其解决方案的深入探讨,使读者能够快速掌握移动Web开发的核心技能。 #### 五、作者简介及出版信息 - **作者**:Maximiliano Firtman是一位知名的移动Web开发专家和技术讲师,拥有...
10. **TechNet中文网络广播首页.url和查看本次课程问题解答.url**:这些URL可能指向相关的技术资源和课程问答记录,帮助用户深入学习和解决问题。 通过观看【msft112006vxpm.wmv】这个视频文件,观众将能够获得实际...
总结,jQuery Mobile由于其框架的特殊性,引入了一些与传统Web开发不一样的问题和挑战。开发者需要深刻理解框架的原理和特点,并且灵活运用解决方案来处理这些问题。了解如何正确使用事件绑定机制、处理Ajax页面请求...
常见的布局有Fit Layout、Card Layout和VBox Layout等。 - **数据存储**:Sencha Touch使用Ext.data.Store对象来管理数据。可以是本地数据也可以是从服务器获取的数据。 - **数据绑定**:允许UI组件与数据源进行动态...
- **具备扎实的信息安全理论基础**,能够理解常见的攻击模式和技术原理。 - **敏捷的思维能力和良好的团队协作精神**,能够在高压环境下快速解决问题。 #### 三、应用 CTF Web解题不仅仅是一项竞技活动,其实际...
**jQuery Mobile HTML5模板详解** ...总的来说,jQuery Mobile HTML5模板是学习和快速开发移动Web应用的宝贵资源,通过深入理解和实践,开发者能够提升在HTML5和jQuery Mobile上的技能,打造高质量的移动用户体验。
在现代移动开发中,连接远程服务器获取和发送数据是常见需求,尤其是在Windows Mobile平台上的应用程序。本主题深入探讨了如何在Windows Mobile设备上构建应用,使其能够通过Web Service与远程数据源进行交互。这一...
jQuery Mobile 是一个用于构建响应式、触控友好的移动 Web 应用的框架,它基于 jQuery 和 HTML5 技术,专为简化跨平台开发而设计。这个实例集将帮助我们深入理解如何利用 jQuery Mobile 的功能创建高效、美观的移动...
在本文中,我们将详细讨论 AJAX 面试中常见的问题和解决方案。 1.Ajax 的基础知识 在工作中,我们经常需要和后台交互,这时我们需要使用 Ajax 将数据发送到服务器端。在使用 Ajax 时,我们需要了解其基本参数,...