彻底搞懂DOM事件处理(零)引子
通过合理使用JavaScript,可以为网站用户提供更好的交互体验。这主要是因为JavaScript能够让网站对用户的各种操作及时做出“反馈”。这种“反馈”使网站不再只是一个静态的艺术品,而是具有着不断变化的可能。它增加了网站的趣味性,勾起了用户对网站的好奇心,从而让用户感到愉快。
而当用户感到愉快时,我们有理由相信它会愿意花费更长的时间在此逗留,或是以更高的频率访问我们的网站,甚至是将网站主动推荐给朋友。这当然是我们想要的结果,因此学会使用JavaScript对网站中用户操作添加“反馈”就变得非常重要了,而这正是我们今天将要探讨的主题 -- “DOM事件处理”。
让我们先解释一下主题中出现的关键词:DOM,事件以及事件处理:
DOM代表文档对象模型(Document Object Modal),是针对HTML和XML文档的一个API,它将页面中的元素以及元素之间的关系抽象为一个由节点对象组成的“树”状模型,以便开发者通过操作节点对象修改页面的样式,结构和内容。
事件是指用户在浏览文档中产生的各种操作,例如“点击鼠标”,“移动滚轮”,“敲击键盘上某一按键”等等。
事件处理即是指当用户在文档中触发某一事件时,开发者使用JavaScript使浏览器执行特定的代码以使网页呈现相应的行为。
了解清楚这三个概念的含义,我们就能够理解学习“DOM事件处理”的逻辑了。首先,我们会讲述浏览器如何获知用户在文档中执行了某一操作,即“捕捉事件”;其次,我们会讲述如何设置一段代码,使其当特定的事件发生时被执行,即“处理事件”;很多时候,我们的“事件处理代码”执行时需要依赖一些当事件发生时才能获取的信息(例如鼠标点击时,指针的位置),而这些信息都被封存在名为“事件对象”的对象中,这将是我们第三部分的主题;而对于各种各样的事件(“鼠标点击”,“键盘敲击某一字符”)我们当然有理由开辟一个独立的章节去深入了解“事件类型”;最后,我们还会给出一些DOM事件处理中,“提升性能”的建议。
所以现在你应该很清楚我们下面提纲的逻辑了:
- 捕捉事件
- 处理事件
- 事件对象
- 事件类型
- 提升性能
很有条理对吧?下一章见
彻底搞懂DOM事件处理(零)引子的更多相关文章
- 一篇文章搞懂DOM
学习JavaScript肯定是会遇到DOM操作,那么什么是DOM?它又是干嘛用的?这篇文章为你揭晓答案. DOM是document object model的缩写,简称文档对象模型. 简单的说DOM是 ...
- 这一次搞懂Spring Web零xml配置原理以及父子容器关系
前言 在使用Spring和SpringMVC的老版本进行开发时,我们需要配置很多的xml文件,非常的繁琐,总是让用户自行选择配置也是非常不好的.基于约定大于配置的规定,Spring提供了很多注解帮助我 ...
- Web端即时通讯基础知识补课:一文搞懂跨域的所有问题!
本文原作者: Wizey,作者博客:http://wenshixin.gitee.io,即时通讯网收录时有改动,感谢原作者的无私分享. 1.引言 典型的Web端即时通讯技术应用场景,主要有以下两种形式 ...
- 搞懂 XML 解析,徒手造 WEB 框架
恕我斗胆直言,对开源的 WEB 框架了解多少,有没有尝试写过框架呢?XML 的解析方式有哪些?能答出来吗?! 心中没有答案也没关系,因为通过今天的分享,能让你轻松 get 如下几点,绝对收获满满. a ...
- 基础篇|一文搞懂RNN(循环神经网络)
基础篇|一文搞懂RNN(循环神经网络) https://mp.weixin.qq.com/s/va1gmavl2ZESgnM7biORQg 神经网络基础 神经网络可以当做是能够拟合任意函数的黑盒子,只 ...
- 彻底搞懂字符编码(unicode,mbcs,utf-8,utf-16,utf-32,big endian,little endian...)[转]
最近有一些朋友常问我一些乱码的问题,和他们交流过程中,发现这个编码的相关知识还真是杂乱不堪,不少人对一些知识理解似乎也有些偏差,网上百度, google的内容,也有不少以讹传讹,根本就是错误的(例如说 ...
- 搞懂分布式技术21:浅谈分布式消息技术 Kafka
搞懂分布式技术21:浅谈分布式消息技术 Kafka 浅谈分布式消息技术 Kafka 本文主要介绍了这几部分内容: 1基本介绍和架构概览 2kafka事务传输的特点 3kafka的消息存储格式:topi ...
- 新手入门HTML5开发,你必须先搞懂这6个问题
凭借着跨平台,实时更新,无需安装,易于分发等众多优点,HTML5受到越来越多企业的青睐.而凭借着入门相对简单的优势,很多人编程初学者都选择学习HTML5.但对于初学者来说,学习HTML5之前,会有很多 ...
- React16源码解读:开篇带你搞懂几个面试考点
引言 如今,主流的前端框架React,Vue和Angular在前端领域已成三足鼎立之势,基于前端技术栈的发展现状,大大小小的公司或多或少也会使用其中某一项或者多项技术栈,那么掌握并熟练使用其中至少一种 ...
随机推荐
- 用ajax实现用户名的检测(JavaScript方法)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- 关于word文档转成html网页的方法
在工作中,有时我们可能需要将一个word文档转换成html网页格式,如在写帮助文档的时候,采用office编写,最终却想以网页的格式传到网站的指定目录下供网友直接浏览 这时我们就需要对word文件进行 ...
- OC开发_Storyboard——block和动画
一.协议 @optional :可选的 @requied :必须实现的 二.block 代码块 1. 以一个^开头,然后是参数,然后是一个大括号,包含我们的代码块 [aDictionary enu ...
- 用到了yii2 hasMany() 方法,一对多关联
view页面代码:其中supply,item,price是一个AR类都是一个类,item和prices是一对多关系: [ 'label' => '参考', 'format' => 'htm ...
- vs 2015
基于应用要求和要使用的语言选择所需工具. Xamarin for Visual Studio:针对所有设备的 C# 中的常用基本代码 Apache Cordova with Visual Studio ...
- rk3188 双屏异显分析
首先是android层: PhoneWindow.java 中加入了GestureDetector成员, 来实现全局滑屏手势监听 onFling方法中,调用了mDecor.getRootWindo ...
- Systemd unit generators unit
systemd.generator(7) - Linux manual page http://man7.org/linux/man-pages/man7/systemd.generator.7.ht ...
- Qt 控制线程的顺序执行(使用QWaitCondition,并且线程类的run函数里记得加exec(),使得线程常驻)
背景项目中用到多线程,对线程的执行顺序有要求: A.一个线程先收数据 B.一个线程处理数据 C.一个线程再将处理后的数据发送出去 要求三个线程按照ABC的顺序循环执行. 思路子类化多线程方法 重写子类 ...
- django通用视图
通用视图 1. 前言 回想一下,在Django中view层起到的作用是相当于controller的角色,在view中实施的 动作,一般是取得请求参数,再从model中得到数据,再通过数据创建模板,返回 ...
- MySQL 的mysqldump备份
MySQL 的mysqldump备份 来自<mysql技术内幕 innodb存储引擎> --single-transaction:只对innodb表有效 --lock-tables:对My ...