梯子 —— 网络加速器 xxnet 配合谷歌云,流畅访问 YouTube、Facebook等墙外世界
自建梯子唯一的问题还是服务器的问题,一兆不够用五兆买不起。。。便宜的搬瓦工要是脸黑也能被墙,所以找个好一点的梯子难啊~ 使用 xx-net免费的梯子要么限速要么限量,最近比较火的 v2ray。。。回归正主,先下载 xx-net,按 github 内说明打开即可 注册谷歌云获取 appidxx-net 虽然也是免费的但是没有谷歌云的 appid 也只有 100M 的日流量,获取 appid 流程:https://github.com/XX-net/XX-Net/wiki/how-to-create-my-appids获取 id 可能会让你绑定 visa 卡,有是最好 没有的话可以不管这个提示但是4.30之后你不绑定将无法使用 记住部署 appid 需要下载 3.14.2 版本,看本文发布时间和实际使用过程再去判断这句话。。 检测 ip部署完自己的 appid 后将会获得每日1G的流量,速度起飞。首次开启 xx-net 需要让程序扫描 ip,所以需要等待一会直到扫描到 ip
github 油猴脚本,国内镜像加速站、快速克隆配置 - github 克隆加速
GitHub 的 clone 加速之前有去找过其他方法,什么修改 host 啥的,都以 gg 告终。最近看到油猴有出脚本那今天就碰一碰。 下载油猴的谷歌扩展插件官网地址谷歌应用商店地址 无法访问谷歌的可以使用 Ghelper 插件 下载油猴脚本脚本官方地址 如访问速度慢的话,建议使用移动网络,或者复制下方代码即可 展开本地脚本,复制添加即可 // ==UserScript== // @icon https://github.githubassets.com/favicon.ico // @name Github 镜像访问,加速下载 // @namespace https://github.com/jadezi/github-accelerator/ // @version 1.0.4 // @description GitHub 镜像,github 加速 // @author jadezi // @license ...
serverless - 无服务 云函数的入门记录
最近写文章需要调用一些接口,而一些借口为了防止被调用做了跨域处理。因为项目是部署在 GitHub 上,想调用一些接口又不能说去买一个服务器吧。。。所以就想到了各大云厂商都在推的云函数,免费,速度又快 真香🤣在试用了腾讯和阿里之后选择了后者,因为腾讯还是需要后端 support 创建函数阿里云提供 Fun、控制台或 vscode 创建函数,刚入门就选择简单的控制台创建函数 如果需要外网访问的话可以选择 http 函数,触发器也需要 http(http 触发器只能在创建函数的时候指定,后期无法修改!)。 函数编写支持在线编辑和代码上传,语言随你选择。我这里使用了 node10 做的 api,如果需要第三方依赖的话需要自己压缩上传或者使用阿里的Fun来部署,每次限制 50MB。 建议使用 Fun 来部署和测试云函数,测试有的功能需要有的 docker,详细的去看官方文档吧。。
js-bind 的多次绑定
前言最近遇到个多次bind绑定的问题,看下面代码你预测下会输出什么 var a=function(){ console.log("a", this) if(typeof this === "function"){ this() } } var b=function(){ console.log("b") if(typeof this === "function"){ this() } } var c=function(){ console.log("c") if(typeof this === "function"){ this() } } var d=a.bind(b) var e=d.bind(c) d() e() 点击查看输出 // abab 我们可以先看看 a在bind的时候发生了什么 d = function() { ...
js-最简实现 promise 源码,异步链式调用的理解
手写 Promise 也是面试的一个特色项目,本篇将用简洁的代码带你了解 Promise 的异步链式调用。 非标准 A+ 规范,想要深入的可以去看 A+ 规范实现的 Promise Promise 代码// promise 运行则执行回调函数, // resolve 函数被执行的时候调用当前实例下挂载的 then 函数。 // 参数1:回调函数 function Promise2(executor) { const self = this; self.onResolvedCallback = []; // 定义 resolve 函数,接受参数 value // resolve 的作用为执行当前实例下的所有 then 函数 function resolve(value) { // A+ 规范 self.value = value; // 此时的 callback 为执行 then 的时候传入的回调 self.onResolvedCallback.forEach(callback =>...
bilibili-在线或本地哔哩哔哩bv号转av号提取互转工具,附官方API和本地JS代码
bilibili,在线哔哩哔哩一键转换bv号至av号工具,哔哩哔哩提取教程
页面结构语义化
前端标签语义化,面试,html,html5
js-面试,手写代码系列:bind,call,apply,new
JavaScript,js手写代码系列
js-复制,document.execCommand 的一些小坑
对于 execCommand 来复制的使用应该不会很陌生,这几天使用的碰上了一个新问题,此方法在请求的时候是无法使用的,往下看👇 默认使用复制const copy = value => { let inp = document.createElement('input'); inp.setAttribute('value', value) document.body.appendChild(inp); inp.select(); document.execCommand('copy') document.body.removeChild(inp) } 在正常情况下 document.execCommand('copy') 是返回 true 的,但是在有异步请求的情况下会返回 false;const copy = value => { let inp =...
一个 Git 项目配置多个仓库
废话不多直接x 普通添加仓库scriptgit remote add origin <git@git.com> 添加多个仓库scriptgit remote add <仓库名称> <git@git.com> # 例子 git remote add newRepository https://github.com/xxx/xxx # 查询 git remote -v # newRepository https://github.com/xxx/newRepository.git (fetch) # newRepository https://github.com/xxx/newRepository.git (push) # origin http://github.com/xxx/xxx (fetch) # origin http://github.com/xxx/xxx (push) # push git push -u newRepository master