怎么选择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 相关文章推荐
用JS实现的一个include函数
Jul 21 Javascript
JQuery的ajax获取数据后的处理总结(html,xml,json)
Jul 14 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
May 10 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
Mar 24 Javascript
浅析XMLHttpRequest的缓存问题
Dec 13 Javascript
js实现倒计时时钟的示例代码
Dec 17 Javascript
javascript操作css属性
Dec 30 Javascript
省市区三级联动下拉框菜单javascript版
Aug 11 Javascript
微信jssdk在iframe页面失效问题的解决措施
Mar 03 Javascript
vue.js 上传图片实例代码
Jun 22 Javascript
Vue2.0+ElementUI实现表格翻页的实例
Oct 23 Javascript
详解vue-cli3多环境打包配置
Mar 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
分享php分页的功能模块
2015/06/16 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
IE JS编程需注意的内存释放问题
2009/06/23 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
2013/02/02 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
分享几种比较简单实用的JavaScript tabel切换
2015/12/31 Javascript
基于jquery编写的放大镜插件
2016/03/23 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
Vue.js学习笔记之修饰符详解
2017/07/25 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
2017/10/12 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
对vue事件的延迟执行实例讲解
2018/08/28 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
Vue3配置axios跨域实现过程解析
2020/11/25 Vue.js
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
使用Python快速制作可视化报表的方法
2019/02/03 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
python实现马丁策略的实例详解
2021/01/15 Python
美国中小型企业领先的办公家具供应商:Office Designs
2016/11/26 全球购物
美国按摩椅批发网站:Titan Chair
2018/12/27 全球购物
生物科学系大学生的自我评价
2013/12/20 职场文书
经贸韩语专业大学生职业规划
2014/02/14 职场文书
高中课前三分钟演讲稿
2014/08/18 职场文书
演讲稿开场白台词
2014/08/25 职场文书
2015年工会工作总结范文
2015/07/23 职场文书
大学新生入学感想
2015/08/07 职场文书
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS