怎么选择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 相关文章推荐
ExtJS GridPanel 根据条件改变字体颜色
Mar 08 Javascript
js调用图片隐藏&显示实现代码
Sep 13 Javascript
鼠标移到图片上变大显示而不是放大镜效果
Jun 15 Javascript
基于RequireJS和JQuery的模块化编程日常问题解析
Apr 14 Javascript
Angularjs CURD 详解及实例代码
Sep 14 Javascript
JS 全屏和退出全屏详解及实例代码
Nov 07 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
Mar 02 Javascript
浅谈vue引用静态资源需要注意的事项
Sep 28 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
Nov 13 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
Jan 21 Javascript
ES6入门教程之Array.from()方法
Mar 23 Javascript
微信小程序实现拨打电话功能的示例代码
Jun 28 Javascript
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
收音机术语解释
2021/03/01 无线电
php 过滤器实现代码
2010/08/09 PHP
php向js函数传参的几种方法
2014/08/10 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
保证JavaScript和Asp、Php等后端程序间传值编码统一
2009/04/17 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
JS实现队列与堆栈的方法
2016/04/21 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
node前端开发模板引擎Jade的入门
2018/05/11 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
如何为你的JS项目添加智能提示与类型检查详解
2019/03/12 Javascript
Javascript Web Worker使用过程解析
2020/03/16 Javascript
JQuery实现折叠式菜单的详细代码
2020/06/03 jQuery
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
JavaScript实现下拉列表
2021/01/20 Javascript
Python数组条件过滤filter函数使用示例
2014/07/22 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
用python中的matplotlib绘制方程图像代码
2019/11/21 Python
Python3 中sorted() 函数的用法
2020/03/24 Python
Python Opencv图像处理基本操作代码详解
2020/08/31 Python
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
西式婚礼证婚词
2014/01/12 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
商场营业员岗位职责
2015/04/14 职场文书
高中生军训感言
2015/08/01 职场文书
干部理论学习心得体会
2016/01/21 职场文书
Redis入门教程详解
2021/08/30 Redis