2021-12-24浏览器新开Tab读不到sessionStorage的问题背景▲ 上半年解决”url 传参方式, 因参数过长导致 url 过长”问题时想到使用 sessionStorage 缓存参数,今天突然发现这个办法在新项目里不管用:虽然新开的 Tab 与源页面在相同的域,但源页面设置的 sessionStorage 在新开 Tab 中读取不到。 ▲ 网上查找如何在 Tab 之间共享 sessionStorage 的方案,排名第一的搜索结果居然是通过 loca...阅读全文…
2021-11-15Ant Design的Upload组件定制背景■Ant Design 官方文档中对于限制数量、上传接口请求与响应、下载等功能的自定义实现方法描述得不详细,在此做下记录。■ 实现功能如下:(1)上传接口报错时弹出错误信息(由于后端接口统一将错误信息与错误码封装在 http 码为 200 的 body 中,所以需要上传接口请求与响应的自定义);(2)限制上传文件数量 10 个;(3)选择文件对话框中可选多个文件;(4)限制每个文件大小不...阅读全文…
2021-02-16git合并分支两种方式:rebase与merge场景○ 当前 git 分支状态如下示意图,本地 dev 分支从 master 分支的 C2 版本切出并经过 2 次提交到达 C4 版本,远程 master 分支经过 1 次提交到达 C5 版本。○ 此时要在本地将 dev 分支合并到 master。 merge 方式♂ 直接使用 merge 命令合并 dev 分支到 master 分支,由于 C2 不是 master 最新版本,将...阅读全文…
2021-02-13本地自签名HTTPS环境搭建前置知道○OpenSSL是为实现SSL和TLS提供支持的工具包;○HTTPS证书只能绑定域名而不能绑定某个IP;○1.1.1版本OpenSSL命令用法的官方文档;○操作环境: 123Windows 10openssl 1.1.1(通过"openssl version"命令查看);nginx 1.17.1 操作步骤添加本地域名●定义本地域名以”blog.congzhou....阅读全文…
2021-01-11Fiddler抓取HTTPS包与手机包基本原理◇Fiddler抓包基于注册成HTTP(S)协议数据的收发代理;◇只要支持配置http代理的环境,就可以使用Fiddler抓包,据此可以抓取经过手机的HTTP(S)包;◇HTTPS比HTTP多了非对称加密机制,包含一对互相解密的公钥和私钥,发起HTTPS过程如下图,抓取HTTPS内容除了作为代理拿到客户端与服务器之间传输的数据还需要能对数据解密; ◇Fiddler抓取HT...阅读全文…
2020-12-25浏览器内核列举简介● 浏览器内核包含两种引擎:排版引擎、JS 引擎。由于 JS 引擎越来越独立,浏览器内核倾向于单指排版引擎。● 排版引擎也称”渲染引擎(Rendering Engine)”,负责渲染网页内容的总体控制。● 所有网页浏览器、电子邮件客户端以及其它需要编辑显示 HTML 内容的应用程序都需要排版引擎。 排版引擎● Trident(/`traidnt/ 又称为 MSHTML...阅读全文…
2020-12-16网页渲染过程总览● 从 Web 内容到屏幕像素的大致过程如下图:首先 Render 进程主线程(Render 线程)上的浏览器内核实例将 HTML 及关联的 CSS 信息转换为绘制信息,然后将绘制信息交给 Compositor 线程并由 GPU 进程协助完成到屏幕像素的转换(此过程称为光栅化<rasterize>); ● Render 线程和 Compositor 线程都位于浏览...阅读全文…
2020-12-11浏览器中的进程与线程浏览器中的进程◆ 现代浏览器都是多进程的,不过目前没有标准规范约定浏览器具体要分为哪些进程或线程,所以各浏览器厂商实现细节会有不同且随着发展在不断调整中,本文以 Chrome 浏览器为例,Chrome 的浏览器内核是 Blink;◆ Chrome 主要包括如下进程:(1)Browser 进程,浏览器主进程,只有一个,负责浏览器基本界面和功能(如地址栏、书签、前进后退按钮)的展示与交互、操作系...阅读全文…
2020-10-21钉钉微应用与小程序的免登流程正文♂钉钉官方开发文档中对微应用免密码登录流程的说明在此页面,总体分三步:(1)获取免登授权码;(2)获取access_token;(3)获取userid;♂画了这个过程的时序图如下,方便对其更直观的了解,小程序的免登流程基本一致,也含在其中; 画这个图的工具♀之前画图用ProcessOn,虽然画图功能好用又可以多人协作但免费版只能保存为图片格式而且有数量限制;♀昨天发现一个超级...阅读全文…
2020-10-07Babel相关内容串联基本概念● Babel 是个 JS 编译器,与大多数编译器一样,包含“parsing”、“transforming”、“generation”三个处理阶段。如下图所示,代码首先经由 @babel/parser(曾用名 Babylon) 解析成抽象语法树(AST),然后对 AST 做遍历(@babel/traverse)和转换(各种@babel/plugin-.....阅读全文…