怎么选择Javascript框架(Javascript Framework)


Posted in Javascript onNovember 22, 2013

Ajax的兴起,给 Javascript带来了新的生机,大量的javascript框架(Javascript Framework)层出不穷,一些框架来至于开发人员项目经验的总结和提炼,也有一些框架来至于商业公司,同时以开源和商业两种方式发布。借助这些框 架,可以大大加速Ajax项目的开发速度,但同时也面临不同的学习曲线,以及架构扩展性等等问题。如何选择Javascript框架,成为开发人员和架构 师头痛的一个问题。如果你正面临这样的问题,希望下面的几个建议对你在选择javascript框架上会有所帮助。

你的项目需求是什么
首先要问自己这是一个什么项目,具体的需求是什么,是一个普通类型的网站还是一个在线的web应用程序,是否需要处理大量的键盘和鼠标事件,是否需要给用户 各类高级的ajax特性,还是说只要实现一个简单的异步页面刷新和一些简单dom操作,如果是后者,则可以选择一个相对简单的javascript框架, 封装基本的xmlhttprequest操作和dom操作就足够了。

浏览器的支持情况
不同的框架兼容的浏览器会有所不同,尤其是一些高级的javascript框架,对低版本的浏览器都不支持,还有一些框架只支持ie和firefox,对其 他浏览器如opera、safari不支持。所以在框架的选择上还要考虑到系统的目标用户,如果目标用户都只使用ie6.0以上浏览器,那么在框架的选择 上余地就更大了。

框架后面是否有一个核心的开发团队
很多框架往往都是个人在业务时间开发的,随时可能停止更新,而如果后面有一个团队,则可以在一定程度上保准代码的更新,对bug和一些问题的及时响应,同时在代码质量上也相对有保准。

框架的成熟度
如果一个新的框架刚刚发布,使用的人往往不多,如果你贸然采用,在使用过程中遇到问题,可能要找个能帮你解决问题的人或者在网上找资料都显的很难。所以在这方面也要有所考虑。

框架的发布更新频率
一个框架有很高的发布更新频率说明新的功能在不断加入或者bug被fix的速度很快,反之一个框架半年都不出一个版本,基本可以说明这个框架已经不被开发者重视,很难得到新的发展。

文档的友好性
一个框架尤其是相对比较复杂的框架,如果没有充分和友好的文档,学习曲线会比较高,使用者在使用过程中往往需要通过阅读代码和其他外部的文章来学习怎么使用和解决一些问题。所以文档也是很重要的一个因素。

是否有个活跃的社区
一些成功的开源框架背后往往有一个社区在支撑,大家在里面交流使用经验,互相帮助解决使用过程中遇到的问题。任何问题,只要在这类社区中寻求帮助,往往很快就可以得到他人的帮助。这样的框架,即使一开始不是很成熟,也会很快发展起来。

框架的扩展性
在 实际的项目过程中,往往一个特定的框架是很难直接满足你的所有需求的,这就要求你需要去做一些定制和扩展的工作,如果一个框架没有很好的扩展性,则你可能 在项目后期为了实现某个特定的需求,不得不采用另一个新的框架,大大加大了项目的成本。所以选择一个有很好扩展性,如支持plugin等机制的框架,对你 今后系统的扩展会有很大的帮助。

性能和网络环境
不同的系统在性能和功能的侧重上 会有所不同,比如一个基于互联网的项目,可能考虑更多的是要求在保准性能的前提下,再来讲功能,很多高级的javascript框架往往在性能上不能让人 满意,一部分原因是封装了太多功能,导致js文件会非常大,在互联网环境下,下载这个js文件就会耗去不少时间,还有就是为了保准如框架的扩展性,往往做 了多层封装和抽象,在某种程度上其实是以牺牲部分性能为代价的。所以这样的框架可能更适合一些intranet内部的项目,而不是基于互联网的项目。

Javascript 相关文章推荐
javascript 写的一个简单的timer
Jul 30 Javascript
使用JavaScript构建JSON格式字符串实现步骤
Mar 22 Javascript
javascript中不等于的代码是什么怎么写
Dec 29 Javascript
jquery+html5制作超酷的圆盘时钟表
Apr 14 Javascript
剖析Node.js异步编程中的回调与代码设计模式
Feb 16 Javascript
基于JS实现的笛卡尔乘积之商品发布
May 13 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
Nov 25 Javascript
AngularJS模仿Form表单提交的实现代码
Dec 08 Javascript
原生ajax处理json格式数据的实例代码
Dec 25 Javascript
使用JavaScript触发过渡效果的方法
Jan 19 Javascript
jquery实现图片上传前本地预览
Apr 28 jQuery
基于jQuery的左滑出现删除按钮的示例
Aug 29 jQuery
jquery根据name属性查找的小例子
Nov 21 #Javascript
js 走马灯简单实例
Nov 21 #Javascript
js获取客户端外网ip的简单实例
Nov 21 #Javascript
jquery实现简单易懂的图片展示小例子
Nov 21 #Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
Nov 21 #Javascript
利用jq让你的div居中的好方法分享
Nov 21 #Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
Nov 21 #Javascript
You might like
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
Javascript实例教程(19) 使用HoTMetal(3)
2006/12/23 Javascript
javascript 有用的脚本函数
2009/05/07 Javascript
初学js 新节点的创建 删除 的步骤
2011/07/04 Javascript
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
HTML,CSS,JavaScript速查表推荐
2014/12/02 Javascript
分享10个优化代码的CSS和JavaScript工具
2016/05/11 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
python入门前的第一课 python怎样入门
2018/03/06 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
利用python脚本如何简化jar操作命令
2019/02/24 Python
Django 自定义分页器的实现代码
2019/11/24 Python
pytorch如何冻结某层参数的实现
2020/01/10 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
2020/03/06 Python
Python HTTP下载文件并显示下载进度条功能的实现
2020/04/02 Python
为什么相对PHP黑python的更少
2020/06/21 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
openCV提取图像中的矩形区域
2020/07/21 Python
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
生物技术专业毕业生求职信范文
2013/12/14 职场文书
经典优秀毕业生求职信范文分享
2013/12/18 职场文书
微观物理专业自荐信
2014/01/26 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
建设工程授权委托书
2014/09/22 职场文书
优秀班组事迹材料
2014/12/24 职场文书
通知的写法
2015/04/23 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书