02 2021 档案
网关与防火墙的区别
摘要:防火墙是bai一项协助确保信息安全的du设备,zhi会依照特定的规则,允许或是限dao制zhuan传输的数据通过。防shu火墙是一台专属的硬件或是架设在一般硬件上的一套软件。个人防火墙是防止您电脑中的信息被外部侵袭的一项技术,它能在您的系统中监控、阻止任何未经授权允许的数据进入或发出到互联网及其他网
阅读全文
浏览器的IndexedDB增删改查
摘要:http://www.ruanyifeng.com/blog/2018/07/indexeddb.html IndexedDBtest.htm内容如下: <!DOCTYPE html> <html > <head> <title></title> <script src="js/indexDb.js
阅读全文
TCP为什么是三次握手和四次挥手
摘要:为什么建立连接是三次握手断开连接是四次挥手?三次握手的流程和四次挥手的流程是什么? 三次握手与四次回收分别对应TCP连接与断开过程 tcp报文格式 标志位含义 ACK:确认序号有效。 SYN:发起一个新连接。 FIN:释放一个连接。 1 2 3 三次握手的过程 注意:三次握手的最主要目的是保证连接是
阅读全文
前端跨页面通信,你知道哪些方法?
摘要:在浏览器中,我们可以同时打开多个Tab页,每个Tab页可以粗略理解为一个“独立”的运行环境,即使是全局对象也不会在多个Tab间共享。然而有些时候,我们希望能在这些“独立”的Tab页面之间同步页面的数据、信息或状态。 正如下面这个例子:我在列表页点击“收藏”后,对应的详情页按钮会自动更新为“已收藏”状
阅读全文
手写promise
摘要:const PENDING = "pending"; const FULFILLED = "fulfilled"; const REJECTED = "rejected"; function MyPromise(fn) { const self = this; self.value = null;
阅读全文
async/await 原理及实现
摘要:解决函数回调经历了几个阶段, Promise 对象, Generator 函数到async函数。async函数目前是解决函数回调的最佳方案。很多语言目前都实现了async,包括Python ,java spring,go等。 async await 的用法 async 函数返回一个 Promise
阅读全文
webpack优化
摘要:文中罗列出了十多种优化方式,大家可以结合自己的项目,选择适当的方式进行优化。这些 Webpack 插件的源码我大多也没有看过,主要是结合 Webpack 官方文档以及项目实践,在验证后输出了本文,如果文中有错误的地方,欢迎在评论区指正。 鉴于前端技术变更迅速,祭出本篇文章基于 Webpack 的版本
阅读全文
webpack优化-速度优化-hard-source-webpack-plugin
摘要:1、背景 在项目实现的过程中,想在代码更改的同时,查看效果的改变,而这个时候长时间的编译等待,造成了额外的时间浪费。 2、简介 HardSourceWebpackPlugin是webpack的插件,为模块提供中间缓存步骤。为了查看结果,您需要使用此插件运行webpack两次:第一次构建将花费正常的时
阅读全文
koa2常用的中间件
摘要:1、koa-router安装:npm i koa-router --save在入口文件中使用如下:2、koa-body安装:npm i koa-body --save使用如下:url?a=1&b=2&c=3 > ctx.queryurl/:id (动态路由) > ctx.params键值对或者对象提
阅读全文
支付渠道路由系统进化史
摘要:支付系统一般需要对接多个支付渠道,一是为了保证系统的可靠性,不能因为单一渠道的问题影响整个支付系统。二是为了提高支付能力,不同渠道提供支付能力不同。三是为了降低支付成本。 对接多个支付渠道以后,为了可以正确选择支付渠道支付,因此设计渠道路由系统。 从上图可以看到路由系统功能其实很简单,分发支付请求到
阅读全文
jsbridge
摘要:jsbridge是随着Hybrid App的流行而产生的一种技术。那么Hybrid App是啥?Hybrid App又称混合App,即同时使用了前端web技术(js,css,html)和原生native技术(java,kotlin,swfit,object-c)进行开发的移动应用。 混合开发的优缺点
阅读全文
支付
摘要:前言 一般来说,一次正常的交易流程,用户会经过几个阶段: 浏览商品列表 查看商品详情 点击购买或加入购物车 商品结算(确认购买) 收银台(进行支付) 支付成功 其中收银台作为交易成功的最后一公里,其承担的职责之重可想而知 我们先来看看市面上常见网站的收银台: 哔哩哔哩会员购: 触屏端 h5页面 pc
阅读全文
koa源码
摘要:参考代码: learn-koa2 我们先来看段原生Node实现Server服务器的代码: const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200); res.en
阅读全文
中间件
摘要:由来 中间件这个术语第一次出现是 1968 年在德国加尔米施帕滕基兴举办的 [NATO 软件工程大会](http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF) 结束后发表的一份报告中。 这届大会正式确定了软件工程(Software
阅读全文
深拷贝与浅拷贝的区别(深合并)
摘要:答:1.深拷贝是复制一个对象出来,改变复制出的对象的值原对象的值不会改变; 浅拷贝复制的是一个对象的指针,改变复制出的对象的值原对象的值也会跟着改变; 2.浅拷贝的方式有四种: a.直接赋值 b. object.assign c.扩展运算符... d. 数组的concat、slice方法 深拷贝的方
阅读全文
深拷贝this/window
摘要:class Copy { static deepClone(orig) { const copy = Object.create(Object.getPrototypeOf(orig)); return this.copyOwnPropertiesFrom(copy, orig); } static
阅读全文
webpack-dev-server 源码
摘要:webpack-dev-server 简介 Use webpack with a development server that provides live reloading. This should be used for development only.It uses webpack-dev
阅读全文
2021前端会有什么新的变化
摘要:2020年前端圈带来具有突破意义的内容或框架不多,也不会再有2013年到2017间日日新的框架大战局面,也不会有Node全栈之争,也不会因为React-Native、Weex、Flutter这类跨端而欣喜若狂。 我能看到的是今天前端已趋于稳定,在深水区探索,比如蚂蚁金服的x6,在图形可视化方面做的就
阅读全文
Java的权限修饰符(public,private,protected,默认friendly)
摘要:以前对访问修饰符总是模棱两可,让自己仔细解释也是经常说不很清楚.这次要彻底的搞清楚. 现在总结如下: 一.概括总结 各个访问修饰符对不同包及其子类,非子类的访问权限 Java访问权限修饰符包含四个:public,protected,friendly,private;但是,friendly在java中
阅读全文
class修饰符public、private、protected、static、abstract
摘要:class修饰符的使用及区别 public、private、protected、static、abstract public:可以继承、实例化 class Person { public name: string; constructor(thename: string) { this.name =
阅读全文
hash和签名 、证书
摘要:一、加解密算法(最普通的加解密) 对称密钥:用户A将明文信息M使用密钥K进行加密,用户B是用密钥K将加密后的信息进行解密。(加密与解密使用同一密钥K) 非对称密钥:用户A将明文信息使用密钥SK进行加密,用户B使用密钥PK将加密后的信息进行解密。(加密与解密使用不同的密钥SK与PK,且SK与PK互为配
阅读全文
前端加密解密crypto
摘要:crypto 模块提供了加密功能,包含对 OpenSSL 的哈希、HMAC、加密、解密、签名、以及验证功能的一整套封装。我们这里讲crypto AES算法加密 一、使用步骤 1.引入Crypto 1.1 使用Crypto,有两种形式。一种是是在script便签直接引入,例如: <script src
阅读全文
appid app_key app_secret
摘要:AppID:应用的唯一标识AppKey:公匙(相当于账号)AppSecret:私匙(相当于密码) token:令牌(过期失效) 使用方法 1. 向第三方服务器请求授权时,带上AppKey和AppSecret(需存在服务器端) 2. 第三方服务器验证AppKey和AppSecret在DB中有无记录 3
阅读全文
axios源码分析
摘要:axios源码分析 - XHR篇 文章源码托管在github上,欢迎fork指正! axios 是一个基于 Promise 的http请求库,可以用在浏览器和node.js中,目前在github上有 87.1K 的star数 备注: 每一小节都会从两个方面介绍:如何使用 -> 源码分析 [工具方法简
阅读全文
sdk开发 、sdk与插件的区别
摘要:SDK全称 Software Development Kit,广义上的 SDK 是为特定的软件包、软件框架、硬件平台、操作系统等建立应用程序时所使用的开发工具的集合,狭义上的 SDK 则是基于系统 SDK 进行开发包装的、新的、独立的、能够完成特定功能并返回相关数据的一组工具的集合。 插件(Plug
阅读全文
为什么puppeteer比selenium好?
摘要:引言 在今年年初,我在公司使用Selenium编写客户端测试。对于那些主要使用Scala编写的开发人员来说,这是很好的事。问题在于学习Scala和Selenium是开发人员编写端到端测试的高标准。我们有很多开发人员几乎都是用TypeScript编写的。作为Scala的新手,对新功能进行客户端测试非常
阅读全文
Puppeteer
摘要:Puppeteer 是 Chrome 开发团队在 2017 年发布的一个 Node.js 包,用来模拟 Chrome 浏览器的运行。我们团队从 Puppeteer 刚发布出来就开始成为忠实用户了(主要是因为 PhantomJs 坑太多了),本文主要在介绍 Puppeteer 的同时,结合我们平时的实
阅读全文