cody1991

记录下来,变成自己的东西

[置顶] 生活清单

始于 2020 年 12 月 27 号 2021 年 电影 在看 想看 看完 电视剧 看完 想见你...

《浏览器工作原理与实践》系列笔记 - 循环系统

消息队列和事件循环:页面是怎么活起来的 每个渲染进程都有一个主线程,主线程非常繁忙,要处理 DOM,要计算样式,处理布局,处理 js 的任务,以及各种输入事件。那么多不同类型的任务是如何在主线程上有条不紊进行的?这就需要一个系统来统筹这些任务,这个统筹系统就是今天要讲的消息队列和循环系统 我们从简单的场景分析,一步步了解浏览器主线程是如何运行的 使用单线程处理安排好的任务 我们从简单...

《图解 Google V8》系列笔记 - 宏观视角

什么是 V8 V8 是 JavaScript 虚拟机的一种,可以简单的把它理解成一个翻译程序: 把人类能理解的 编程语言 JavaScript 翻译成机器能够理解的 机器语言 现在市场上很多 JavaScript 引擎,比如 SpiderMonkey,V8,JavaScriptCore。 谷歌开发的 V8 是当下应用最广泛的 JavaScript 虚拟机 V8 出现之前,所有的...

《浏览器工作原理与实践》系列笔记 - V8工作原理

栈空间和堆空间:数据是如何存储的 让人疑惑的代码 1 2 3 4 5 6 7 8 function foo() { var a = 1; var b = a; a = 2; console.log(a); console.log(b); } foo(); 1 2 3 4 5 6 7 8 function foo() { var a = { name: ' 极客...

《浏览器工作原理与实践》系列笔记 - 浏览器中的页面

页面性能分析:利用 chrome 做 web 性能分析 Chrome 开发者工具 包含了 10 个功能面板,包括了 Elements、Console、Sources、NetWork、Performance、Memory、Application、Security、Audits 和 Layers 提供了访问编辑 DOM 和 CSSOM 的能力,也提供了强大的调试和性能指标工具 网络面板 ...

《浏览器工作原理与实践》系列笔记 - 浏览器中的JavaScript执行机制

JavaScript 代码的执行流程 变量提升:JavaScript 代码是按顺序执行的吗 主要讨论这段代码: 1 2 3 4 5 6 showName(); console.log(myName); var myName = 'miaomiaomiao'; function showName() { console.log('函数showName被执行'); } “变量提升”...

《浏览器工作原理与实践》系列笔记 - 浏览器安全

浏览器安全可以分为三个模块:Web 页面安全,浏览器网络安全和浏览器系统安全 假设我们没有安全策略,想想 web 世界会怎样? web 世界会是开放的,任何资源都可以接入,我们网站可以加载并执行其他网站的脚本文件,图片,音视频,下载其他站点的可执行文件。这种绝对的自由,没有限制,会造成无序混乱和不可控的局面 比如打开银行站点,又打开一个恶意站点,恶意站点可以做很多事情 修改银行...

《浏览器工作原理与实践》系列笔记 - 宏观视觉上的浏览器

1 - 宏观视觉上的浏览器 1.1 - Chrome 架构:仅仅打开了 1 个页面,为什么有 4 个进程 打开浏览器的任务管理器,有时候会很好奇为什么只开了一两个标签页面,但是进程却那么多 我们先看看进程和线程的区别 进程和线程 进程是程序运行的实例,启动程序的时候,操作系统为它分配一块内存,用来存放代码,运行中的数据和一个执行任务的主线程。我们把这套环境称之为进程 线程由进...

《浏览器工作原理与实践》系列笔记 - 浏览器中的网络

谈到浏览器的网络,就绕不开 HTTP,它是浏览器中应用最多的协议,是浏览器和服务器之间通信的语言,也是互联网的基石 随着浏览器发展,为了适合新的形式也在持续发展。 了解 HTTP 最好的方法就是了解它的发展史。接下来会从以浏览器的发展视角讲讲 HTTP 的研究,分别是 即将完成使命的 HTTP/1 走向我们的 HTTP/2 未来的 HTTP/3 HTTP1:HTTP ...

Vue3 + TypeScript + Vuex4 初尝试

一个简单的任务列表构建,本文的代码在 vue3-typescript 可自行下载 准备工作 使用 Vue CLI 脚手架工具快速创建项目 1 2 3 sudo yarn global add @vue/cli vue create vue3-ts 手动选择我们想要的配置 1 2 3 4 5 6 7 8 9 10 Vue CLI v4.5.12 ? Please pick a p...

Vue CLI 项目使用 Github Pages 自动部署静态页面

前言 今天写了一篇 Vue3 + TypeScript + Vuex4 初尝试 的博客,代码放在 vue3-typescript 上面了 但是项目代码没有自动构建,现在只能下载到本地进行体验。想起之前写过的一个项目 ticket-purchase 有自动构建到 Github Pages 的流程,但是没有总结是怎么处理的,今天记录下 资料参考 Vue CLI 如果构建到 Github ...