JavaScript框架是什么?怎样才能叫做框架?


Posted in Javascript onJuly 01, 2015

刚初学js时,总会听到关于框架的一些事情。等学完JQ后我才知道什么是框架。一下是转载的一篇文章,希望对还迷茫的童鞋们有点帮助。

什么是 JavaScript 框架?

JavaScript 本身就是一种功能强大的语言,您不需要额外的框架就可创建富互联网应用程序(RIA)。然而使用 JavaScript 并不是件容易的事,主要是由于支持多个 Web 浏览器产生的复杂性。与 HTML 和 CSS一样,不同的浏览器有不同的 JavaScript 实现。让 JavaScript 代码实现跨浏览器兼容简直是个噩梦。

JavaScript 框架或库是一组能轻松生成跨浏览器兼容的 JavaScript 代码的工具和函数。每一个库都在众多流行的 Web 浏览器的现代版本上进行了可靠的测试,因此,您可以放心地使用这些框架,您的基于 JavaScript 的 RIA 将会在不同浏览器和平台上以类似的方式工作。

除了解决跨浏览器问题,使用 JavaScript 框架可以更容易地编写检索、遍历、操作 DOM 元素的代码。它们不仅提供获取 DOM 元素引用的快捷函数,而且还允许 DOM 遍历函数以菊花链(daisy-chaining)方式查找任意深度的父元素、子元素、兄弟元素。最后,框架还提供一系列函数来更轻松地操作这些对象,可以改变、添加或删除内容本身;或者使用 CSS 样式类来改变元素的外观。

框架的另一重要特性是其改进的事件处理支持。由于不同浏览器的实现方式各不相同,跨浏览器事件处理将会非常艰难。因此 JavaScript 框架通常封装浏览器事件,并提供一组有用的跨浏览器兼容的函数来进行处理。有些框架还会提供一组标准键盘代码来表示基于键盘的事件(如按下 Escape 键、Return 键、光标键,等等)。

所有这些特性都非常有用,但 JavaScript 框架有一个特性对于它最近的流行非常重要 — 支持 Ajax。与 JavaScript 的其他许多方面一样,每个 Web 浏览器往往以不同方式支持 Ajax,这使得以一种在所有 Web 浏览器中都受支持的方式处理 Ajax 变得十分复杂。几乎所有 JavaScript 框架都包含某种形式的 Ajax 库支持,通常提供 Ajax 请求和响应对象,以及用于评价响应、更新 DOM 元素、查询特定请求的帮助函数(helper)。

JavaScript 框架的典型特性

现在,让我们看一看大多数 JavaScript 框架都具备的有用特性。包括:

1.选择器(Selector)
2.DOM 遍历
3.DOM 操作
4.实用(Utility)函数
5.事件处理Ajax

在解释每个特性时,我将会用以下的一个或几个 JavaScript 框架举例说明:Prototype、jQuery、YUI、ExtJS 和 MooTools。尽管每个框架的实现和语法都各不相同,但概念都是相同的。每个框架都有一个详细的 API 参考,可帮助您理解如何使用该特定库中的特性。

Javascript 相关文章推荐
使用jquery插件实现图片延迟加载技术详细说明
Mar 12 Javascript
在网站上应该用的30个jQuery插件整理
Nov 03 Javascript
jQuery中对节点进行操作的相关介绍
Apr 16 Javascript
基于JQuery 滑动与动画的说明介绍
Apr 18 Javascript
jQuery修改class属性和CSS样式整理
Jan 30 Javascript
Javascript编程中几种继承方式比较分析
Nov 28 Javascript
js拖拽功能实现代码解析
Nov 28 Javascript
微信小程序 scroll-view隐藏滚动条详解
Jan 16 Javascript
详解JS中的this、apply、call、bind(经典面试题)
Sep 19 Javascript
微信小程序获取手机系统信息的方法【附源码下载】
Dec 07 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
Aug 13 Javascript
element-ui组件中input等的change事件中传递自定义参数
May 22 Javascript
javascript常用的方法分享
Jul 01 #Javascript
JavaScript数组去重的3种方法和代码实例
Jul 01 #Javascript
JavaScript检测字符串中是否含有html标签实现方法
Jul 01 #Javascript
JS实现简单的图书馆享元模式实例
Jun 30 #Javascript
JS建造者模式基本用法实例分析
Jun 30 #Javascript
JS模式之简单的订阅者和发布者模式完整实例
Jun 30 #Javascript
JS模式之单例模式基本用法
Jun 30 #Javascript
You might like
深入for,while,foreach遍历时间比较的详解
2013/06/08 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
php环境无法上传文件的解决方法
2014/04/30 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
功能强大的jquery.validate表单验证插件
2016/11/07 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
JS验证码实现代码
2017/09/14 Javascript
vue.js使用3DES加密的方法示例
2018/05/18 Javascript
浅谈Vue中render中的h箭头函数
2019/11/07 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
2020/07/28 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
快速查询Python文档方法分享
2017/12/27 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
浅谈Python脚本开头及导包注释自动添加方法
2018/10/27 Python
python执行精确的小数计算方法
2019/01/21 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
Python3实现个位数字和十位数字对调, 其乘积不变
2020/05/03 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
Canvas高级路径操作之拖拽对象的实现
2019/08/05 HTML / CSS
技术学校毕业生求职信分享
2013/12/02 职场文书
敬老文明号事迹材料
2014/01/16 职场文书
《赵州桥》教学反思
2014/02/17 职场文书
先进个人申报材料
2014/12/30 职场文书
护士求职自荐信
2015/03/25 职场文书
导游词之湖州-太湖
2019/10/11 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
详解PHP Swoole与TCP三次握手
2021/05/27 PHP