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 相关文章推荐
dojo学习第二天 ajax异步请求之绑定列表
Aug 29 Javascript
js操作CheckBoxList实现全选/反选(在客服端完成)
Feb 02 Javascript
关于js注册事件的常用方法
Apr 03 Javascript
使图片旋转的3种解决方案
Nov 21 Javascript
jQuery表格插件datatables用法总结
Sep 05 Javascript
javascript实现2016新年版日历
Jan 25 Javascript
jQuery层级选择器_动力节点节点Java学院整理
Jul 04 jQuery
vue2.0使用v-for循环制作多级嵌套菜单栏
Jun 25 Javascript
Vue 项目分环境打包的方法示例
Aug 03 Javascript
使用react context 实现vue插槽slot功能
Jul 18 Javascript
vant picker+popup 自定义三级联动案例
Nov 04 Javascript
浅谈vue2的$refs在vue3组合式API中的替代方法
Apr 18 Vue.js
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
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
PHP防注入安全代码
2008/04/09 PHP
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
2016/11/30 PHP
PHP正则表达式匹配替换与分割功能实例浅析
2017/02/04 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
Jquery 实现Tab效果 思路是js思路
2010/03/02 Javascript
JS实现图片预加载无需等待
2012/12/21 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
解决canvas画布使用fillRect()时高度出现双倍效果的问题
2017/08/03 Javascript
JavaScript实现AOP详解(面向切面编程,装饰者模式)
2017/12/19 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
react脚手架如何配置less和ant按需加载的方法步骤
2018/11/28 Javascript
Vue组件间通信方法总结(父子组件、兄弟组件及祖先后代组件间)
2019/04/17 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
Python读取指定目录下指定后缀文件并保存为docx
2017/04/23 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
使用python进行拆分大文件的方法
2018/12/10 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
Django中使用极验Geetest滑动验证码过程解析
2019/07/31 Python
详解Django admin高级用法
2019/11/06 Python
python如何查看网页代码
2020/06/07 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
Django实现简单的分页功能
2021/02/22 Python
中秋节超市促销方案
2014/01/30 职场文书
行政人事经理职位说明书
2014/03/05 职场文书
住房抵押登记委托书
2014/09/27 职场文书
贷款担保书
2015/01/20 职场文书
简单聊聊Golang中defer预计算参数
2022/03/25 Golang