网站布局分析网站子页设计

pingmian/2025/10/8 5:43:48/文章来源:
网站布局分析,网站子页设计,宁陵网站建设,wordpress生成的html代码01_原理-事件循环 文章目录 01_原理-事件循环一、浏览器的进程模型①#xff1a;何为进程#xff1f;②#xff1a;何为线程#xff1f;③#xff1a;浏览器有哪些进程和线程#xff1f; 二、渲染主线程是如何工作的#xff1f;三、若干解释①#xff1a;何为异步…01_原理-事件循环 文章目录 01_原理-事件循环一、浏览器的进程模型①何为进程②何为线程③浏览器有哪些进程和线程 二、渲染主线程是如何工作的三、若干解释①何为异步②JS为何会阻碍渲染③任务有优先级吗④js优先级案例 一、浏览器的进程模型 ①何为进程 程序运行需要有它自己专属的内存空间可以把这块内存空间简单的理解为进程 ②何为线程 有了进程后就可以运行程序的代码了。 运行代码的「人」称之为「线程」。 一个进程至少有一个线程所以在进程开启后会自动创建一个线程来运行代码该线程称之为主线程。 如果程序需要同时执行多块代码主线程就会启动更多的线程来执行代码所以一个进程中可以包含多个线程。 ③浏览器有哪些进程和线程 浏览器是一个多进程多线程的应用程序 浏览器内部工作极其复杂。 为了避免相互影响为了减少连环崩溃的几率当启动浏览器后它会自动启动多个进程。 1.可以在浏览器的任务管理器中查看当前的所有进程 其中最主要的进程有 1.浏览器进程 主要负责界面显示、用户交互、子进程管理等。刻览器进程内部会启动多个线程处理不同的任务。 2.网络进程 负责加载网络资源。网络进程内部会启动多个线程来处理不同的网络任务。 3.渲染进程本节课重点讲解的进程 渲染进程启动后会开启一个渲染主线程主线程负责执行HTML、CSS、JS代码。 默认情况下浏览器会为每个标签页开启一个新的渲染进程以保证不同的标签页之间不相互影响。 将来该默认模式可能会有所改变有兴趣的同学可参见chrome官方说明文档 二、渲染主线程是如何工作的 渲染主线程是浏览器中最繁忙的线程需要它处理的任务包括但不限于 解析HTML解析cSS计算样式布局处理图层每秒把页面画60次执行全局JS代码执行事件处理函数执行计时器的回调函数等······· 思考题为什么渲染进程不适用多个线程来处理这些事情 要处理这么多的任务主线程遇到了一个前所未有的难题如何调度任务 比如 我正在执行一个JS函数执行到一半的时候用户点击了按钮我该立即去执行点击事件的处理函数吗 我正在执行一个JS函数执行到一半的时候某个计时器到达了时间我该立即去执行它的回调吗 浏览器进程通知我“用户点击了按钮”与此同时某个计时器也到达了时间我应该处理哪一个呢 渲染主线程想出了一个绝妙的主意来处理这个问题排队 在最开始的时候渲染主线程会进入一个无限循环每一次循环会检查消息队列中是否有任务存在。如果有就取出第一个任务执行执行完一个后进入下一次循环如果没有则进入休眠状态。其他所有线程包括其他进程的线程可以随时向消息队列添加任务。新任务会加到消息队列的未尾。在添加新任务时如果主线程是休眠状态则会将其唤醒以继续循环拿取任务 这样一来就可以让每个任务有条不紊的、持续的进行下去了。 三、若干解释 ①何为异步 代码在执行过程中会遇到一些无法立即处理的任务比如 计时完成后需要执行的任务 – setTimeout setInterval网络通信完成后需要执行的任务 – XHR、Fetch用户操作后需要执行的任务 – addEventListener 如果让渲染主线程等待这些任务的时机达到就会导致主线程长期处于「阻塞」的状态从而导致浏览器「卡死」 渲染主线程承担着极其重要的工作无论如何都不能阻塞 使用异步的方式渲染主线程永不阻塞 面试题如何理解JS的异步 参考答案 JS是一门单线程的语言这是因为它运行在浏览器的渲染主线程中而渲染主线程只有一个。 而渲染主线程承担着诸多的工作渲染页面、执行JS都在其中运行 如果使用同步的方式就极有可能导致主线程产生阻塞从而导致消息队列中的很多其他任务无法得到执行。 这样一来一方面会导致繁忙的主线程白白的消耗时间另一方面导致页面无法及时更新给用户造成卡死现 象。 所以浏览器采用异步的方式来避免。具体做法是当某些任务发生时比如计时器、网络、事件监听主线程将 任务交给其他线程去处理自身立即结束任务的执行转而执行后续代码。当其他线程完成时将事先传递的 回调函数包装成任务加入到消息队列的末尾排队等待主线程调度执行 在这种异步模式下浏览器永不阻塞从而最大限度的保证了单线程的流畅运行 ②JS为何会阻碍渲染 !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head body h1Coke/h1 button按钮/button script var h1 document.querySelector(h1); var btn document.querySelector(button);// 死循环指定的时间 function delay(duration) {var start Date.now();while (Date.now() - start duration) {} }btn.onclick function () {h1.textContent Coke很帅delay(3000) }; /script /body /html③任务有优先级吗 任务没有优先级在消息队列中先进先出 但消息队列是有优先级的 根据W3C的最新解释 每个任务都有一个任务类型同一个类型的任务必须在一个队列不同类型的任务可以分属于不同的队列。在一次事件循环中浏览器可以根据实际情况从不同的队列中取出任务执行。 浏览器必须准备好一个微队列微队列中的任务优先所有其他任务执行 https://html.spec.whatwg.org/multipage/webappapis.html#perform-a-microtask-checkpoint 随着浏览器的复杂度急剧提升W3C不再使用宏队列的说法 在目前chrome的实现中至少包含了下面的队列 延时队列用于存放计时器到达后的回调任务优先级「中」交互队列用于存放用户操作后产生的事件处理任务优先级「高」微队列用户存放需要最快执行的任务优先级「最高」 添加任务到微队列的主要方式主要是使用Promise、MutationObserver 例如 //立即把一个函数添加到微队列 Promise.resolve().then(函数)浏览器还有很多其他的队列由于和我们开发关系不大不作考虑 面试题阐述一下JS的事件循环 参考答案 事件循环又叫做消息循环是浏览器渲染主线程的工作方式。 在Chrome的源码中它开启一个不会结束的for循环每次循环从消息队列中取出第一个任务执行而其 他线程只需要在合适的时候将任务加入到队列未尾即可。 过去把消息队列简单分为宏队列和微队列这种说法目前已无法满足复杂的浏览器环境取而代之的是一种更 加灵活多变的处理方式。 根据W3C官方的解释每个任务有不同的类型同类型的任务必须在同一个队列不同的任务可以属于不同的 队列。不同任务队列有不同的优先级在一次事件循环中由浏览器自行决定取哪一个队列的任务。但浏览器 必须有一个微队列微队列的任务一定具有最高的优先级必须优先调度执行。 面试题JS中的计时器能做到精确计时吗为什么 参考答案 不行因为 1.计算机硬件没有原子钟无法做到精确计时ǐ 2.操作系统的计时函数本身就有少量偏差由于JS的计时器最终调用的是操作系统的函数也就携带了这些偏差 3.按照W3C的标准浏览器实现计时器时如果嵌套层级超过5层则会带有4毫秒的最少时间这样在计时时间少于4毫秒时又带来了偏差 4.受事件循环的影响计时器的回调函数只能在主线程空闲时运行因此又带来了偏差 ④js优先级案例 1.案例1 setTimeout(function (){console.log(1) }, 0)console.log(2)2.案例2 // 死循环指定的时间 function delay(duration){var start Date.now();while(Date.now() - start duration){ } }setTimeout(function (){console.log(1) },0)delay(1000)console.log(2)3.案例3 setTimeout(function (){console.log(1) },0)// 将改任务放到微队列中微队列优先级最高 Promise.resolve().then(function(){console.log(3) })console.log(2)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/89781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多商户商城源码下载巩义网站推广优化

1.脚本格式 我们一般将shell脚本写在xxx.sh文件中,执行的时候bash/sh xxx.sh 注意文件路径 xxx.sh文件中的第一行为 #!/usr/bin/bash 注代表我们使用的是bin文件夹下的bash解释器(此条为注释语句,不写也可以) 2.echo用法 相当与print 示例1&…

厦门网站开发平台wordpress是一种

这几天GPT-3成为人工智能甚至整个科技圈最为热门的话题。作为著名人工智能科研公司 OpenAI 开发的文字生成 (text generation) 人工智能,GPT-3的相关论文在2020年5月份就已经发表,由于使用了45TB的数据,并采用了天文数字级别的1,750亿参数量而…

网站改版活动资深网站

不说成为Linux高级工程师,但成为合格的软件开发人员还是够了,一文深入浅出的精炼总结Linux核心知识点,掌握Linux的使用与高阶技巧。 Linux 的学习对于一个程序员的重要性是不言而喻的。前端开发相比后端开发,接触 Linux 机会相对…

江苏营销型网站公司视差设计网站

ylbtech-建站手册-网站主机:电子商务主机1.返回顶部 1、http://www.w3school.com.cn/hosting/host_ecommerce.asp2、2.返回顶部1、如果您的公司正在销售某种产品或服务,那么电子商务也许是做生意的一种好办法。 Internet 商业 电子商务就是在 Internet 上…

有没有接单做加工的网站北京到天津

http://www.cnblogs.com/zhenyulu/category/6930.html 吕震宇的博客园,关于设计模式介绍的比较全面。很值得学习的博客转载于:https://www.cnblogs.com/wangzihao/archive/2012/05/23/2514485.html

建设厅网站总经济师是干什么的比较好的公司网页制作

飞桨开发者技术专家(PPDE)谢杰航研究方向为AI城市规划、景观设计、生态环境及农业等领域的应用落地。他在此前Wave Summit 2023深度学习开发者大会上为大家带来了主题为《大模型时代的开发者:从飞桨PPDE到文心布道师》的演讲。本次演讲共分为…

网站建设需求策划书合肥企业自助建站

阿里云服务器配置选择方法包括云服务器类型、CPU内存、操作系统、公网带宽、系统盘存储、网络带宽选择、安全配置、监控等,阿里云百科分享阿里云服务器配置选择方法,选择适合自己的云服务器配置! 目录 一:云服务器类型 二&…

蒙文门户网站建设深圳个人网站制作

#include <iostream> //不同种类的动物&#xff0c;如狮子、大象、猴子等。现在&#xff0c;动物园里有一位讲解员&#xff0c;他会为每种动物表演做简单的介 //绍。定义一个基类 Animal&#xff0c;其中有一个虛函数perform&#xff08;)&#xff0c;用于在子类中实现不…

商品网站建设实验报告交易类网站做支付宝功能

上一个笔记&#xff1a;学习笔记-静态路由配置有来无回导致无法访问目标IP 拓扑图&#xff1a; 书接上回。 模拟R2至R3之间的链路中断&#xff0c;配置备份路由通过R1访问R3。 shutdown掉R2的gi0/0/2端口&#xff0c;模拟链路中断。pingR3的gi0/0/0和R3的loopback0&#xff…

这么做国外网站的国内镜像站wordpress 调用 函数

目录 如何获得对象非原型链上的属性&#xff1f; 如何获得对象非原型链上的属性&#xff1f; 要获取对象上非原型链上的属性&#xff0c;可以使用 hasOwnProperty() 方法。这个方法是 JavaScript 内置的对象方法&#xff0c;用于检查一个对象是否包含指定名称的属性&#xff0…

做网站 宁波一级做c爱片的网站

我在网上看了一下关于AOP的各种介绍&#xff0c;我觉得和我想象的不一样&#xff0c;不可调和啊&#xff0c;我的理解是从拦截来的 &#xff0c;就是管道&#xff0c;管道里面有很多面片&#xff0c;你可以在这些面片里面插入逻辑&#xff0c;这和事件基本是一回事啊&#xff0…

做网站要那些工具哪些浏览器可以看禁止访问的网站

WEB管理信息系统分三层设计&#xff0c;分别为DataBase数据库、REST2SQL后端、JSON2WEB前端&#xff0c;三层都可以单独部署。 1 DataBase数据库 数据库根据需要选型即可&#xff0c;不需要自己设计开发&#xff0c;一般管理信息系统都选关系数据库&#xff0c;比如Oracle、…

购买服务器后如何做网站中成网站建设

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:项目日记-高并发内存池⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你做项目   &#x1f51d;&#x1f51d; 开发环境: Visual Studio 2022 项目日…

企业网站网络推广怎么做杭州做网站

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 依旧是追求耗时0s的一天。 100. 相同的树 给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在…

成都市双流区建设局官方网站移动端网站建设公司

LeetCode209——长度最小的子数组 题目描述&#xff1a; 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数…

企业建设3D网站网站的目的及功能规划

桥接模式的定义 C的桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#xff0c;它将抽象部分与实现部分分离&#xff0c;使得它们可以独立地变化。桥接模式的核心思想是利用组合关系代替继承关系&#xff0c;将系统划分成多个独立的、功能不同的类层次结…

做自己个人网站南宁网站推广工具

转载公众号 | AI机器学习与知识图谱本文介绍六篇有关知识图谱预训练的优秀论文&#xff0c;大致上可分为两类&#xff0c;生成学习模型和对比学习模型。其中GPT-GNN模型是生成学习模型&#xff0c;模型灵感来源于自然语言处理中的GPT模型&#xff1b;GCC&#xff0c;GraphCL&am…

大连网站关键词排名西安公关公司

给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&#xff08;包括相同的字符串&#xff09;。 示例 1: 输入: s "cbaebabacd", p "…

一个返利网站建设流程网站可以做参考文献吗

题目描述&#xff08;1&#xff09; 1662. 检查两个字符串数组是否相等 . - 力扣&#xff08;LeetCode&#xff09; 给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 数组表示的字符串…