彻底搞懂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轮询——定时的通过Ajax查询服务端
概念:轮询(polling):客户端按规定时间定时向服务端发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接. test.html //前端代码 <html> <h ...
- JavaIO简单代码实例
最近又复习了下JavaIO写了些实例代码都很简单但是能体现大部分方法的用法. IO流实现文件的拷贝 几种不同的方法: package com.wxisme.TestIO; import java. ...
- 3149: [Ctsc2013]复原
3149: [Ctsc2013]复原 Time Limit: 10 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 95 Solved: 44[ ...
- ts和js中let和var定义变量的区别
javascript 严格模式 第一次接触let关键字,有一个要非常非常要注意的概念就是”JavaScript 严格模式”,比如下述的代码运行就会报错: let hello = 'hello worl ...
- 分布式锁的实现(java)
当对接第三方接口时,往往会碰到同一时间发送了大量相同的请求,这个时候或许就是第三方发送接口的失误了.而我们需要做的就是针对这个情况来强化我们的系统.这个时候就需要用到分布式锁.让这些请求只有一个能发送 ...
- Oracle数据库误删文件导致rman备份报错RMAN-06169解决办法
Oracle数据库误删文件导致rman备份报错RMAN-06169解决办法 可能是误删文件导致在使用rman备份时候出现以下提示 RMAN-06169: could not read file hea ...
- tensorflow和python操作中的笔记
前一段时间做了一些项目,把一些笔记放在了txt中,现分享出来,自己也能够时长预习. 1) 读取文件时,将固定的文件地址,采用数组或者字符串的形式,提前表示出来,后期使用时候采用拼接操作 2) # 得到 ...
- ping 10.13.5.233
3. 环境 URL选择器 tableView ping 10.13.5.233
- stark - 数据列表
一.效果图 二.数据列表 知识点: 完成(list_display)(list_display_links) 1.根据str,拿字段对象,取中文 val = self.model._meta.get_ ...
- Linux eventfd分析
2017-07-20 eventfd在linux中是一个较新的进程通信方式,和信号量等不同的是event不仅可以用于进程间的通信,还可以用户内核发信号给用户层的进程.eventfd在virtIO后端驱 ...