![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
浏览器知识
文章平均质量分 58
火腿肠烧烤大赛冠军
F=-F
展开
-
ES-Module
简单来说就是浏览器及node.js不借助webpack等打包直接引用依赖包的方式 Snowpack 、Vite 为代表的 bundless(随着用户使用加载) 都是使用浏览器的ESM功能 使用方式(浏览器) script 标签上加 type=“module” 即可 <script type="module"> import { logger } from "./utils.js"; logger("2333"); </script> 使用方式(node)-未尝试 方法一: 将文件原创 2022-05-05 22:20:46 · 147 阅读 · 0 评论 -
jS调用栈
js为栈 先进后出 递归等操作导致堆栈溢出 js无法归还主线程 则会影响页面导致卡顿原创 2021-09-04 09:41:27 · 102 阅读 · 0 评论 -
javaScript的V8引擎
V8是什么 负责任务: 编译和执行JS代码 处理调用栈 内存分配 垃圾回收 一般浏览器处理js代码的三大部件 解析器: 将js语法解析成抽象语法树AST 解释器: 将AST解释称字节码bytecode(同时也有执行bytecode的能力) 编译器: 处理出更高效的机器代码 V8早期编译模型 解析器解析: full-codegen编译器直接使用AST编译成机器代码:(基准编译器 生成的是基准的未被优化的机器代码) 所以第一次使用时直接使用了高效的机器代码 运行一段时间后 分析器线程收集数据原创 2021-09-03 22:28:13 · 518 阅读 · 0 评论 -
浏览器是如何运作的
浏览器发展史 进程与线程 进程描述 很多应用都是多进程结构,每个进程分配独立的内存空间 进程之间依靠通信管道IPC进行通讯 每个进程独立操作并不会影响其他进程 浏览器的进程 现在的浏览器一般有很多进程 独立的负责自己的模块 浏览器一般会给每个标签页都开启一个进程 步骤 输入URL 浏览器通过ui线程判断是否为地址: 如果是则DNS解析然后通过网络请求地址数据 如果不是则利用默认配置的搜索引擎来进行查询 safebrowsing检测是否安全 网络线程获取数据后,先通过safebrowsing检测当前原创 2021-09-02 19:06:25 · 173 阅读 · 0 评论 -
浏览器的缓存机制
逻辑图 缓存位置 Service Worker Service Worker 的缓存与浏览器其他内建的缓存机制不同,它可以让我们自由控制缓存哪些文件、如何匹配缓存、如何读取缓存,并且缓存是持续性的。首先需要先注册 Service Worker,然后监听到 install 事件以后就可以缓存需要的文件,那么在下次用户访问的时候就可以通过拦截请求的方式查询是否存在缓存,存在缓存的话就可以直接读取缓存文件,否则就去请求数据。 当 Service Worker 没有命中缓存的时候,我们需要去调用 fetch原创 2021-07-15 15:53:21 · 134 阅读 · 1 评论