浏览器渲染原理【核心】
Download PDF
JS-事件循环【核心】
事件循环浏览器的进程模型何为进程?程序运行需要有它自己专属的内存空间,可以把这块内存空间简单的理解为进程
每个应用至少有一个进程,进程之间相互独立,即使要通信,也需要双方同意。
何为线程?有了进程后,就可以运行程序的代码了。
运行代码的「人」称之为「线程」。
一个进程至少有一个线程,所以在进程开启后会自动创建一个线程来运行代码,该线程称之为主线程。
如果程序需要同时执行多块代码,主线程就会启动更多的线程来执行代码,所以一个进程中可以包含多个线程。
浏览器有哪些进程和线程?浏览器是一个多进程多线程的应用程序
浏览器内部工作极其复杂。
为了避免相互影响,为了减少连环崩溃的几率,当启动浏览器后,它会自动启动多个进程。
可以在浏览器的任务管理器中查看当前的所有进程
其中,最主要的进程有:
浏览器进程
主要负责界面显示、用户交互、子进程管理等。浏览器进程内部会启动多个线程处理不同的任务。
网络进程
负责加载网络资源。网络进程内部会启动多个线程来处理不同的网络任务。
渲染进程(本节课重点讲解的进程)
渲染进程启动后,会开启一个渲染主线程,主线程负责执行 HTML、CSS、JS ...
CMD命令
CMD
文件树
tree /f
组策略
1gpedit.msc
防火墙
1netsh advfirewall set allprofiles state off
服务
1services.msc
设备管理器
1devmgmt.msc
证书
1certmgr.msc
注册表
1regedit
IP地址检测
1Nslookup
计算机管理
1compmgmt.msc
windows版本
1winver
系统组件服务
1dcomcnfg
监控TCP/IP
1netstat -ano
网路连接记录
1net use
本地安全策略
1secpol.msc
文件粉碎
12cacls "D:\test*" /T /E /C /G everone:F # D:\test 文件绝对路径 * 目录下所有rd "D:\test" /s /q
WIfi信息
12netsh wlan show profilenetsh wlan show profile name="ssid" key=cle ...
Spring-boot
spring bootspring boot cache
Cacheable注解配置的两项参数说明:
value:缓存的名称,缓存名称作为缓存key的前缀。
key: 缓存key,支持SpEL表达式,上述代码表示取参数id的值作为key
最终缓存key为:缓存名称+“::”+key,例如:上述代码id为123,最终的key为:JZ_CACHE:SERVE_RECORD::123
SpEL(Spring Expression Language)是一种在 Spring 框架中用于处理字符串表达式的强大工具,它可以实现获取对象的属性,调用对象的方法操作。
keyGenerator:指定一个自定义的键生成器(实现 org.springframework.cache.interceptor.KeyGenerator 接口的类),用于生成缓存的键。与 key 属性互斥,二者只能选其一。
unless:
12345// 返回数据为空 缓存// unless true 不缓存// @Cacheable(value = "", key = "", cacheMan ...
Hexo 服务器部署
Hexo服务器Git部署
前提条件:本地ssh公匙(C:\Users\Reiki.ssh\id_rsa.pub),已配置服务器:
123adduser gitchmod 740 /etc/sudoersvim /etc/sudoers
在root ALL=(ALL) ALL 下面添加
1git ALL=(ALL) ALL
改回权限,设置git用户密码
12chmod 400 /etc/sudoerspasswd git
123su gitmkdir ~/.sshvim ~/.ssh/authorized_keys
粘贴 本地ssh公匙
本地测试
1ssh -v git@111.1111.111.111
若免密登录,成功!
###准备两个目录
1.网站目录12mkdir /www/wwwroot/hexochmod -R 755 /www/wwwroot/hexo
2.git仓库目录123mkdir /home/git/repochown -R git:git /home/git/repochmod -R 755 /home/git/repo
创建git钩子12 ...
Js进阶
JS 进阶代码示例123456789101112(() => { let x, y try { throw new Error() } catch (x) { // x 为 catch 变量 y 为全局声明变量 (x = 1), (y = 2) console.log(x) // 1 } console.log(x) // undefined console.log(y) // 2})()
catch 代码块接收参数 x。当我们传递参数时,这与之前定义的变量 x 不同。这个 x 是属于 catch 块级作用域的。
然后,我们将块级作用域中的变量赋值为 1,同时也设置了变量 y 的值。现在,我们打印块级作用域中的变量 x,值为 1。
catch 块之外的变量 x 的值仍为 undefined,y 的值为 2。当我们在 catch 块之外执行 console.log(x) 时,返回 undefined,y 返回 2。
12345let person = { name: &q ...
自建邮件服务器
Centos 7 自建邮件服务器前提准备Https 网站域名
详细搭建 https 参考链接 ➡
添加 MX 记录
优先级: 通常设置为 10 或 20,数字越小优先级越高。
验证 MX 记录1dig MX mail.wyy.icu # mail.wyy.icu 为你的邮件服务 域名
证书文件cert
1/www/server/cert/email.wyy.icu/fullchain.pem
key
1/www/server/cert/email.wyy.icu/privkey.pem
添加权限12sudo chmod 640 /www/server/cert/email.wyy.icu/fullchain.pemsudo chmod 640 /www/server/cert/email.wyy.icu/privkey.pem
服务端口云服务器控制台防火墙 + 服务器端口
确保两者都要打开
12345678980 # http443 # https143 # IMAP993 # IMAP(SSL)25 # SMTP 发件服务110 ...
SSL-证书Nginx部署
SSL 证书部署acme
acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书.
官方安装
github
国内用户
中国大陆用户请参考
1.开始安装
进入到一个安装目录
通常 /root
1.安装依赖安装 socat
使用 Standalone 模式:如果您在使用 acme.sh 的 standalone 模式(即 acme.sh 自带的临时服务器),socat 将被用来监听端口 80 并处理 HTTP-01 挑战请求。
在Ubuntu/Debian12sudo apt-get updatesudo apt-get install socat
在 CentOS/RHEL 系统上1sudo yum install socat
2.安装acme123git clone https://gitee.com/neilpang/acme.sh.gitcd acme.sh./acme.sh --install -m my@example.com
2.生成证书前提条件
域名已经解析到服务器
可通过http://e ...
算法修炼手册
算法修炼手册经典算法总结(个人版)1.最大公约数12def res(x, y): return res(y, x % y) if y else x
2.数组求逆序123def change(self,nums: List[int], s: int, e: int) -> None: #num 数组 s: 起始索引 e: 末尾索引 for i in range(math.ceil((e - s + 1) / 2)): nums[s+i], nums[e - i] = nums[e - i], nums[s+i]
3.链表快慢指针12345678s = q = headwhile q and q.next: #s最终指向 中间(奇) 后半部分 第一个节点 (偶)#2 while q.next and q.next.next: s最终指向 中间(奇) 前半部分 最后一个节点 (偶) s = s.next q = q.next.next#1 s 指向中间节点 s = Math.ceil(n/2) #2 s 指向中间节点 s = Math.ceil ...
Nmap命令
Nmap
扫描(Ping)网段内所有 IP
1nmap -sP -PI 192.168.1.0/24
全面扫描
1nmap -A 192.168.1.1
免Ping 扫描 穿透防火墙 免发现
1nmap -P0 192.168.1.1
TCP SYN Ping 扫描
12nmap -PS -v 192.168.1.1nmap -PS80,10-100 -v 192.168.1.1 #针对防火墙丢弃RST包
TCP ACK Ping 扫描
1nmap -PA -v 192.168.1.1
UDP Ping 扫描
1nmap -PU -v 192.168.1.1
NMAP 高级使用
NMAP 高级使用技巧
NESSUS 漏洞检测
NMAP 高级使用技巧
NMAP 语法及示例
语法:nmap [Scan Type(s)] [Options]
例 1:使用nmap 扫描一台服务器
默认情况下,Nmap 会扫描 1000 个最有可能开放的TCP 端口。
┌──(root💀xuegod53)-[~]
└─# nmap 1 ...
