web应用的生命周期

简介: web应用的生命周期

从第4步开始页面的构建

页面构建

页面的构建过程,主要做两件事

  • 解析HTML代码并构建文档对象模型(DOM)
  • 执行JavaScript代码。

当浏览器在页面构建阶段遇到了脚本节点,就会停止HTML到DOM的构建,转而开始执行JavaScript代码,依次执行全局JS代码,若期间调用了函数,则执行JS 函数内的代码。

JS 代码执行结束后,将继续HTML到DOM的构建,直到再次遇到脚本节点。

这两件事不断交替,直到整个页面构建完毕,接着进入事件处理阶段。

事件处理

页面构建完成后,用户即可看到页面,并与页面进行交互,这些交互,都通过事件的形式跟踪和触发。

常见的事件有:

  • 浏览器事件,例如当页面加载完成后或无法加载时;
  • 网络事件,例如来自服务器的响应(Ajax事件和服务器端事件);
  • 用户事件,例如鼠标单击、鼠标移动和键盘事件;
  • 计时器事件,当timeout时间到期或又触发了一次时间间隔。

要想让页面对事件做出响应,需要先注册事件 —— 即告诉浏览器,在事件发生时,要执行哪些 JS 代码。

注册事件

  • 方式一:【不推荐】 把函数赋给某个特殊属性

缺点:对于某个事件只能注册一个事件处理器

window.onload = function(){};
document.body.onclick = function(){};
  • 方式二:使用内置addEventListener方法

优点:对于某个事件可以注册多个事件处理器

   document.body.addEventListener("mousemove", function() {    ←---  为mousemove事件注册处理器
      var second = document.getElementById("second");
      addMessage(second, "Event: mousemove");
   });

   document.body.addEventListener("click", function(){    ←---  为click事件注册处理器
      var second = document.getElementById("second");
      addMessage(second, "Event: click");
   });

事件轮询

因为 JS 是单线程执行,所以事件会排成一个队列,通过事件轮询机制,一个个执行(先进先出),图示如下:

处理事件

核心思想:当事件发生时,浏览器调用相应的事件处理器。

目录
相关文章
|
9天前
|
弹性计算 算法 安全
视觉智能开放平台产品使用合集之在Web应用和WinForm应用程序中调用API时,出现Web端能够成功调用而WinForm端调用失败,是什么原因
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
2天前
|
人工智能 开发框架 Devops
.NET技术概览:** 本文探讨了.NET的核心特性,包括多语言支持、Common Language Runtime、丰富的类库和跨平台能力,强调其在企业级、Web、移动及游戏开发中的应用。
【7月更文挑战第4天】.NET技术概览:** 本文探讨了.NET的核心特性,包括多语言支持、Common Language Runtime、丰富的类库和跨平台能力,强调其在企业级、Web、移动及游戏开发中的应用。此外,讨论了.NET如何通过性能优化、DevOps集成、AI与ML支持以及开源策略应对未来挑战,为开发者提供强大工具,共创软件开发新篇章。
11 3
|
3天前
|
搜索推荐 UED Python
动态多条件查询:理解`filter_by`与`filter`提升Web应用搜索功能
通过深入理解filter_by与filter的异同,并结合使用它们,我们可以构建一个既灵活又强大的动态多条件查询系统。这不仅提升了Web应用的搜索功能,也为用户提供了更加个性化的搜索体验。希望本文能够启发你在自己项目中实现类似的功能,以满足用户多变的搜索需求。
|
6天前
|
存储 缓存 负载均衡
使用Java构建可扩展的Web应用
使用Java构建可扩展的Web应用
|
4天前
|
搜索推荐 UED Python
动态多条件查询:理解`filter_by`与`filter`提升Web应用搜索功能
了解SQLAlchemy中`filter_by`与`filter`对提升Web应用搜索功能至关重要。`filter_by`简化了等值查询,而`filter`则支持复杂的表达式和逻辑组合。通过动态获取用户输入,构建基础查询并根据条件应用过滤,可以创建灵活的搜索系统。结合分页和排序,为用户提供定制化搜索体验。掌握这两者,能增强应用的交互性和实用性。
10 0
动态多条件查询:理解`filter_by`与`filter`提升Web应用搜索功能
|
5天前
|
SQL 安全 Java
Java Web应用的安全防护与攻防深度剖析
Java Web应用的安全防护与攻防深度剖析
|
5天前
|
机器学习/深度学习 数据可视化 前端开发
使用Stream实现Web应用,使用YOLOv8模型对图像进行目标检测为例。
使用Stream实现Web应用,使用YOLOv8模型对图像进行目标检测为例。
16 1
|
8天前
|
监控 Serverless 持续交付
阿里云云效产品使用问题之如何让流水线支持构建 flutter web 应用到 OSS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
8天前
|
存储 前端开发 JavaScript
探索Django:打造高效、可扩展的Web应用(中)
探索Django:打造高效、可扩展的Web应用(中)
10 1
|
8天前
|
开发框架 中间件 PHP
Laravel框架:优雅构建PHP Web应用的秘诀
**Laravel 框架简介:** Laravel是PHP的优雅Web开发框架,以其简洁语法、强大功能和良好开发者体验闻名。它强调代码的可读性和可维护性,加速复杂应用的构建。基础步骤包括安装PHP和Composer,然后运行`composer create-project`创建新项目。Laravel的路由、控制器和Blade模板引擎简化了HTTP请求处理和视图创建。模型和数据库迁移通过Eloquent ORM使数据库操作直观。Artisan命令行工具、队列、事件和认证系统进一步增强了其功能。【6月更文挑战第26天】
11 1