HTML
事件循环机制
总方针是先同步再异步,异步中先微任务,再宏任务
宏任务
先执行宏任务,再执行微任务
常见宏任务:
- 定时器回调函数setTimeout\setInterval
- I/O操作
- UI渲染(例如点击、滚动、键盘事件等,当用户与页面交互时,会产生相应的宏任务)
- 脚本任务:整个脚本文件的执行就是一个宏任务。
- 网络请求和文件读写:当进行网络请求或读写文件时,需要等待操作完成,这些操作会被添加到宏任务队列中,并等待执行。
- Node.js 中的 I/O 操作:例如读写文件、网络请求、数据库操作等,这些操作会被添加到宏任务队列中,并等待执行。
微任务
常见的微任务:
promise的回调函数(then/catch/finally) 2.nextTick()MutationObserver,可以观察 DOM 树的变化,并在变化发生时触发回调函数queueMicrotask,使用queueMicrotask()可以方便地将一个任务添加到微任务队列中
HTML-Header
- title,标签,全局唯一
- base,向页面相对的URL提供前缀,没啥鸟用,不建议使用
- meta,通常是约定好的键值对,一般用于提供关于文档的元数据信息,例如文档的描述、关键字、作者、字符集等。这些元数据信息可以被浏览器、搜索引擎等工具用于优化搜索结果、提高用户体验
- link,rel决定类型,href决定引入地址
- script,脚本标签,可以内嵌代码和外链文件
SVG和Canvas
svg(矢量):draw可以用于交互,可扩展性强,随着尺寸变化不会失真,对事件处理更友好
canvas(点阵绘制):paint没有为事件配置特殊处理
HTML5存储
cookies:
- 4kb,内存较小
- 可以存在浏览器browser和服务器端server
- 在请求时被发送,可能会造成发送请求的体积过大
- 过期时间通过人为设定
sessionStorage:
- 5mb
- 只在同一个tab
- 存在浏览器
- 退出浏览器自动清空
localStorage:
- 10mb
- 可以通过随意的window访问
- 存在浏览器
- 不存在过期时间,除非手动清除
MVC & MVVM & MVP 软件架构模式(交互方式)
MVP是对MVC的改进,他把所有操作放在presenta这一层 MVVM:代表:vue,主要实现双向绑定
MVC(Model-View-Controller)模式
MVC 是一种经典的软件架构模式,它将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。其中,模型表示数据和业务逻辑,视图表示用户界面,控制器作为中介者协调模型和视图之间的交互。MVC 模式的优点是将应用程序分解为不同的组件,使得代码更加模块化和可维护。
MVVM(Model-View-ViewModel)模式
MVVM 是一种基于 MVC 模式的前端架构模式,它将视图(View)、模型(Model)和视图模型(ViewModel)分为三个部分。其中,视图负责显示用户界面,模型表示数据和业务逻辑,视图模型则是连接视图和模型的桥梁,负责处理用户输入和输出,并将数据从模型转换为视图所需要的格式。MVVM 模式的优点是可以将视图和模型分离,使得代码更加清晰和易于维护,同时也可以实现数据的双向绑定,提高开发效率。
MVP(Model-View-Presenter)模式
MVP 是一种基于 MVC 模式的前端架构模式,它将视图(View)、模型(Model)和中介者(Presenter)分为三个部分。其中,视图负责显示用户界面,模型表示数据和业务逻辑,中介者作为中介者协调模型和视图之间的交互。MVP 模式的优点是可以将视图和模型分离,同时通过中介者将视图和模型之间的交互进一步解耦,使得代码更加清晰和易于维护。
总之,MVC、MVVM 和 MVP 是三种常见的软件架构模式,它们都旨在解决软件开发过程中的问题,但它们的实现方式和重点略有不同。MVC 模式适用于后端开发,MVVM 和 MVP 则是前端开发中常见的架构模式。
AMP和PWA 提高 Web 应用性能和用户体验
AMP:
PWA: