自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 收藏
  • 关注

原创 nginx 反向代理和简单的负载均衡算法

nginx 反向代理和简单的负载均衡算法nginx 安装 (MAC)// 命令行终端运行/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"// 安装 nginxbrew install nginx// 运行 nginxnginx配...

2020-01-09 23:21:27 224

原创 抓包分析 https 密钥协商流程

抓包分析 https 密钥协商流程工具:Wireshark 2.6.6抓取链接:https://220.181.38.150  (*度地址)本机地址:100.81.137.224刚开始分析不知道TLS协议的会话缓存机制,百度使用了会话缓存的这种机制来加速https握手的速度!客户端使用要恢复的会话的会话ID发送“客户端问候”消息。服务器检查其会话缓存中是否有匹配的会话ID。...

2020-01-09 22:35:05 2573 2

原创 电脑检测不到手机设备

手机 adb devices 找不到设备, 华为P30 pro,连别人电脑都能识别,在我的电脑上识别不到,adb devices 找不到设备,只能充电。解决方法:只有先把USB连接设置为MTP模式,再把手机设置成USB调试模式,才可检索到手机设备。

2025-03-11 12:47:49 126

原创 为什么有了 Last-Modified 还需要 Etag

Last-Modified和If-Modified-Since是一对的。当浏览器第一次请求一个url时,服务器端的返回状态码为200,同时HTTP响应头会有一个Last-Modified标记着文件在服务器端最后被修改的时间。浏览器第二次请求上次请求过的url时,浏览器会在HTTP请求头添加一个If-Modified-Since的标记,用来询问服务器该时间之后文件是否被修改过。

2025-03-11 12:45:37 185

原创 vscode 源代码管理

您可以通过切换 scm.showHistoryGraph 设置来禁用传入/传出更改的图形可视化。

2025-03-11 12:43:49 1063

原创 npm --unsafe-perm 参数,解决权限错误,permission denied

就是说 npm 出于安全考虑不支持以 root 用户运行,即使你用 root 用户身份运行了,npm 会自动转成一个叫 nobody 的用户来运行,而这个用户几乎没有任何权限。要么加 --unsafe-perm 参数,这样就不会切换到 nobody 上,运行时是哪个用户就是哪个用户,即使是 root。npm会有生命周期,某个包会有生命周期来执行一些东西,安全起见会自动降级导致没有权限执行一些操作,通过–unsafe-perm参数来解锁该限制。添加–unsafe-perm 参数,如。

2025-03-11 12:41:56 290

原创 npm-shrinkwrap.json 与 package-lock.json 区别和联系

package-lock.json 是 npm 5 的新特性,也不向前兼容,如果 npm 版本是 4 或以下,那还是使用 npm-shrinkwrap.json 吧。

2025-03-11 12:40:38 299

原创 npm exact 参数记录

save-exact 、 -E参数的意思是精确的安装指定版本的模块,细心的同学会发现dependencies字段里每个模块版本号前面的^不见le。

2025-03-11 12:38:25 116

原创 npm exact 参数记录

save-exact 、 -E参数的意思是精确的安装指定版本的模块,细心的同学会发现dependencies字段里每个模块版本号前面的^不见le。

2025-03-11 12:37:44 87

原创 mac 显示隐藏文件

Command + Shift + . 可以显示隐藏文件、文件夹,再按一次,恢复隐藏

2025-03-11 12:35:45 113

原创 HTTP 强 Etag 和 弱 Etag

ETag机制同时支持强校验和弱校验。它们通过ETag标识符的开头是否存在“W/”来区分,如:“123456789” – 一个强ETag验证符W/“123456789” – 一个弱ETag验证符强校验的ETag匹配要求两个资源内容的每个字节需完全相同,包括所有其他实体字段(如Content-Language)不发生变化。强ETag允许重新装配和缓存部分响应,以及字节范围请求。弱校验的ETag匹配要求两个资源在语义上相等,这意味着在实际情况下它们可以互换,而且缓存副本也可以使用。

2025-03-11 12:34:26 498

原创 chrome 调试 hy 页面时不显示已打开的 hy 页面

chrome://inspect/#devices 页面中不显示 hy 页面 ,已开启开发这模式,已开启浏览器调试。Adb 目录在 ~/plaform-tools。命令 ./adb devices。解决方案:adb devices。

2025-03-11 11:40:38 120

原创 Charles 证书过期,重新安装证书

2、将保存的证书,拖至“登录” → “证书” 中。1、钥匙串里面找到并删除 Charles 证书。4、重启电脑,检查证书是否自动同步到系统根证书。2、保存证书到本地磁盘。5、确认代理是关闭状态。

2025-03-11 11:39:51 1000

原创 Charles VPN 同时使用冲突问题,手机 wifi 连接电脑并接入内网

2、家里面没有网线的同学(连接 wifi 就无法开启热点),当手机和电脑在同一局域网情况下,可以先打开 Charles,然后将手机 wifi 代理到本机 Charles 上,再打开 VPN “Allow local (LAN) access when using VPN (if configured)” 选项,最后连接 VPN,同样可以达到手机接入内网的效果。1、Charles 和 VPN 有冲突,需要先开启 Charles 再连接 VPN。

2025-03-11 11:36:40 565

原创 刷机后 wifi 已连接,无网络问题

我们刷完LineageOS后,连接WiFi或者移动网络,会出现叉号或叹号。这是因为在连接一个网络的时候,系统会去请求一个google的网址来确定这个网络是否具有网络访问。由于我国GFW封锁策略,导致系统请求google网址不成功,就会出现叉号或叹号。电脑配置adb环境,打开命令行。手机root并开启调试模式。一、叉号/叹号出现的原因。

2025-03-11 11:27:31 270

原创 react hook 简易实现

摘自:自顶向下学 React 源码<!DOCTYPE html><html lang="en"><head> <title>React App</title></head><body> <div id="root1"></div> <div id="root2"></div> <div id="a"> &

2021-06-14 23:41:18 401 3

原创 react input 格式化后光标错位

react input 格式化后光标错位问题修复。react 银行卡 格式化后 光标错位问题修复

2020-04-28 11:35:01 1596 1

原创 js 根据银行卡号 匹配 得到 所属银行名称

如有未涉及到的银行信息,请联系作者更新数据。const BANK_CARD_LIST = [ { bankName: "中国邮政储蓄银行", bankCode: "PSBC", patterns: [{ reg: /^(621096|621098|622150|622151|622181|622188|622199|...

2020-04-28 11:12:23 2079

原创 手机号、银行卡号 格式化 加空格 每四位一空格

xxxxxxxx.replace(/\s/g,'').replace(/(\d{4})(?=\d)/g,"$1 ")

2020-04-22 15:44:10 945

原创 关闭iterm2中对于行数的限制

iTerm2 默认的行数限制,超过 1000 的部分就被隐藏不显示了。处理方式:打开 Preferences窗口,点击 Profiles,右侧点击 Terminal,在 Scrollback line 右边勾选 Ulimited scrollback。...

2020-04-19 23:28:54 15252 1

原创 跨域 post 请求 set cookie 无效

// 需要加这个字段xhrFields:{ withCredentials: true },

2020-04-16 15:42:04 1007

原创 LeetCode 703. 数据流中的第K大元素 JavaScript

/** * 通过 * @param {number} k * @param {number[]} nums */function swap(arr, i, j) { [arr[i], arr[j]] = [arr[j], arr[i]];}// 调整堆function heapify(arr, len, i) { while (true) { if...

2020-04-12 14:24:38 316

原创 JS判断客户端是否是iOS或者Android

var u = navigator.userAgent;var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端alert('是否是Android:'+i...

2020-03-24 10:41:11 230

原创 写了好多代码,发现写错分支了怎么办

未提交的情况下git add . (把所有改动暂存)git stash (把暂存的文件提交到git的暂存栈)git checkout 本该提交代码的分支git stash pop (将暂存栈中的代码放出来)至于是继续改还是提交就随你了已提交的情况下git checkout 不该提交代码提交了代码的分支git reset HEAD~1 (最近一次提交放回暂存区,...

2020-03-11 18:11:05 3689 2

原创 不小心把 node_modules 文件夹 或 logs 文件夹 或一些开发依赖上传至远程仓库怎么办?

1.找到项目中 .gitignore 文件2.在文件任意添加需要忽略的文件或文件夹node_modules/logs/3.git rm -r node_modules/ --cached 这里如果是文件夹需要 -r 文件则不需要4.git add .5.git commit -m “node_modules 文件夹忽略”6.git push origin xux.zhou...

2020-03-11 18:10:33 782

原创 git 补丁

git add . git commit -m “小程序监控迁移” git log 记录要打补丁的 commit 557d00dc8ff8f5e8cad9922c56f030d399d0e063 git format-patch 557d00dc8ff8f5e8cad9922c56f030d399d0e063 -1 创建 patch 这里的 1 是指作用于一个提交,当然了 2 ...

2020-03-11 18:09:25 178

原创 git 分支重命名

假设分支名称为oldName想要修改为 newName1. 本地分支重命名(还没有推送到远程)git branch -m oldName newName2. 远程分支重命名 (已经推送远程-假设本地分支和远程对应分支名称相同)a. 重命名远程分支对应的本地分支git branch -m oldName newNameb. 删除远程分支git push -d origin ...

2020-03-11 18:08:59 174

原创 git stash pop 后冲突

git stash pop 后冲突,冲突后 git stash 中的记录并不会删除。git stash pop 后冲突,git reset --hard 可恢复至 pop 前状态

2020-03-11 18:08:18 1856

原创 git revert 回滚、撤销、反做

比如分支上有 A、B、C、D 四个 commit ,现在发现 B 上面有 bug 需要把 B 上面的代码下掉 我们可以通过 git revert (B版本号) 来对 B 提交做一个取反的操作,比如 B 添加了一行代码 git revert B 之后就会删除 B 添加的这行代码然后 git commit -m "revert B" 提交改操作git push 有冲突的话需要...

2020-03-11 18:07:32 633

原创 git reset

git reset 命令后面是需要加2种参数的:–-hard 和 –-soft。这条命令默认情况下是 -–soft。 执行上述命令时,这该条commit号之 后(时间作为参考点)的所有commit的修改都会退回到git缓冲区中。使用git status 命令可以在缓冲区中看到这些修改。而如果加上-–hard参数,则缓冲区中不会存储这些修改,git会直接丢弃这部分内容。可以使用 git p...

2020-03-11 18:07:00 273

原创 git 无法与远程其他分支交互问题

起因:项目是通过 git clone XXX —depth=1 仅拉取最后一个版本到本地,导致本地无法查看远程其他分支,也无法向其他分支推送代码解决方案:vim .git/config按照如下示例修改:[core] repositoryformatversion = 0 filemode = true bare = false logallrefupd...

2020-03-11 18:03:55 299

原创 js 手写 Object.is

Object在严格等于的基础上修复了一些特殊情况下的失误,具体来说就是+0和-0,NaN和NaN。function is(x, y) { if (x === y) { //运行到1/x === 1/y的时候x和y都为0,但是1/+0 = +Infinity, 1/-0 = -Infinity, 是不一样的 return x !== 0 || y !== 0...

2020-03-04 21:40:12 510

原创 js 手写 instanceof

function myInstanceof(left, right) { if(typeof left !== 'object' || left == null) { return false } let proto = Object.getPrototypeOf(left); while(proto) { if(proto === ...

2020-03-04 21:22:36 533

原创 css 实现 三角形 梯形

在线调试<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title> <style> div { width: 0; height: 0; border-width: 1...

2020-02-23 20:53:13 303

原创 js 手写 call apply bind

calllet obj = { name: 'xxx'}function sayName(prev) { console.log(prev, this.name)}Function.prototype.myCall = function (context) { context = context || window; let args = [...ar...

2020-02-23 20:22:16 486

原创 js 插入排序 时间复杂度 n^2

// 插入排序 时间复杂度 n^2var arr = [1, 4, 5, 6, 8, 9, 4, 3, 3, 4, 56, 7, 8, 56, 4, 3, 2, 3, 5, 456]for (let i = 2, len = arr.length; i < len; i++) { let k = arr[i] let index = i for (let j...

2020-02-23 16:50:21 290

原创 js 对象模拟 DOM 树 实现 render 方法 调用 render 方法将 js 对象转真正的 DOM 节点

var ul = el('ul', { id: 'list' }, [ el('li', { class: 'item' }, ['item 1']), el('li', { class: 'item' }, ['item 2']), el('li', { class: 'item' }, ['item 3']),])var ulRoot = ul.render();...

2020-02-23 15:15:06 912 1

原创 js 双向链表 插入 查找

function Node(value) { this.value = value; this.prev = null; this.next = null; return this;}function List() { this.head = new Node(null); this.insert = function(index, node...

2020-02-22 23:30:19 208

原创 js 手写 es6 模板字符串

// ES6 模板字符串let name = "小明";let age = 24;let temp = "hello, 我是 ${ name }, 今年 ${ age} 岁了, 五年以后我 ${age+5} 岁。";function fn(str) { console.log(str) return str.replace(/\$\{(.*?)\}/g, f...

2020-02-22 21:35:41 902 1

原创 base64相关

Base64图片编码原理:Base64编码要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前面补两个0,形成8位一个字节的形式。 如果剩下的字符不足3个字节,则用0填充,输出字符使用’=’,因此编码后输出的文本末尾可能会出现1或2个’=’http://gj.3gwen.com/tpbase64.html?kbl=base64 里为什么需要每个 6 位二进制需要...

2020-02-16 22:30:22 176

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除