Giter Site home page Giter Site logo

jsnotes's Introduction

jsnotes's People

Contributors

ixlei avatar

Stargazers

PyCode avatar

Watchers

 avatar

Forkers

zhangchongzc

jsnotes's Issues

谈起音视频,前端能做些什么

谈起音视频,前端能做些什么

@(音视频)[Audio|Video|MSE]

音视频随着互联网的发展,对音视频的需求越来越多,然而音视频无乱是播放还是编解码,封装对性能要求都比较高,那现阶段的前端再音视频领域都能做些什么呢。


[TOC]

音频或视频的播放

html5 audio

提起音视频的播放,我萌首先想到的是HTMLMediaElementvideo播放视频,audio播放音频。举个栗子:

<audio controls autoplay loop="true" preload="auto" src="audio.mp3"></audio>
  • controls指定浏览器渲染成html5 audio.
  • autoplay属性告诉浏览器,当加载完的时候,自动播放.
  • loop属性循环播放.
  • preload当渲染到audio元素时,便加载音频文件.
  • 移动端的浏览器并不支持autoplaypreload 属性,即不会自动加载音频文件,只有通过一些事件触发,比如touchclick事件等触发加载然后播放.
  • 媒体元素还有一些改变音量,某段音频播放完成事件等,请阅读HTMLMediaElement.
  • 当然如果你的网页是跑在WebView中,可以让客户端设置一些属性实现预加载和自动播放。

AudioContext

虽然使用html5的audio可以播放音频,但是正如你看到存在很多问题,同时我萌不能对音频的播放进行很好的控制,比如说从网络中获取到音频二进制数据,有的时候我萌想顺序播放多段音频,对于使用audio元素也是力不从心,处理起来并不优雅。
举个栗子:

function queuePlayAudio(sounds) {
	let index = 0;
	function recursivePlay(sounds, index) {
		if(sounds.length == index) return;
		sounds[index].play();
		sounds[index].onended = recursivePlay.bind(this, sounds, ++index);
	}
}

监听audio元素的 onended 事件,顺序播放。

为了更好的控制音频播放,我萌需要AudioContext.

AudioContext接口表示由音频模块连接而成的音频处理图,每个模块对应一个AudioNode。AudioContext可以控制它所包含的节点的创建,以及音频处理、解码操作的执行。做任何事情之前都要先创建AudioContext对象,因为一切都发生在这个环境之中。

可能理解起来比较晦涩,简单的来说,AudioContext 像是一个工厂,对于一个音频的播放,从音源到声音控制,到链接播放硬件的实现播放,都是由各个模块负责处理,通过connect 实现流程的控制。
点击查看

现在我萌便能实现音频的播放控制,比如从网络中获取。利用AJAX中获取 arraybuffer类型数据,通过解码,然后把音频的二进制数据传给AudioContext创建的BufferSourceNode,最后通过链接 destination 模块实现音频的播放。

   export default class PlaySoundWithAudioContext {
	constructor() {
	        if(PlaySoundWithAudioContext.isSupportAudioContext()) {
	            this.duration = 0;
	            this.currentTime = 0;
	            this.nextTime = 0;
	            this.pending = [];
	            this.mutex = false;
	            this.audioContext = new (window.AudioContext || window.webkitAudioContext)();
	        }
	    }
	    static isSupportAudioContext() {
	        return window.AudioContext || window.webkitAudioContext;
	    }

	   play(buffer) {
	        var source = this.audioContext.createBufferSource(); 
	        source.buffer = buffer;                  
	        source.connect(this.audioContext.destination); 
	        source.start(this.nextTime);
	        this.nextTime += source.buffer.duration;
	    }

    addChunks(buffer) {
        this.pending.push(buffer);
        let customer = () => {
            if(!this.pending.length) return;
            let buffer = this.pending.shift();
            this.audioContext.decodeAudioData(buffer, buffer => {
            this.play(buffer);
            console.log(buffer)
            if(this.pending.length) {
                customer()
            }
            }, (err) => {
                console.log('decode audio data error', err);
            });
        }
        if(!this.mutex) {
            this.mutex = true;
            customer()
        }
       
    }

    clearAll() {
        this.duration = 0;
        this.currentTime = 0;
        this.nextTime = 0;
    }
}

AJAX调用

function xhr() {
    var XHR = new XMLHttpRequest();
   XHR.open('GET', '//example.com/audio.mp3');
  XHR.responseType = 'arraybuffer';
  XHR.onreadystatechange = function(e) {
      if(XHR.readyState == 4) {
         if(XHR.status == 200) {
	   playSoundWithAudioContext.addChunks(XHR.response);
	}
      }
   }
  XHR.send();
}

使用Ajax播放对于小段的音频文件还行,但是一大段音频文件来说,等到下载完成才播放,不太现实,能否一边下载一边播放呢。这里就要利用 fetch 实现加载stream流。

fetch(url).then((res) => {
    if(res.ok && (res.status >= 200 && res.status <= 299)) {
        readData(res.body.getReader())
    } else {
        that.postMessage({type: constants.LOAD_ERROR})
    }
})

function readData(reader) {
    reader.read().then((result) => {
        if(result.done) {
            return;
        }
        console.log(result);
        playSoundWithAudioContext.addChunks(result.value.buffer);
    })
}

简单的来说,就是fetchresponse返回一个readableStream接口,通过从中读取流,不断的喂给audioContext 实现播放,测试发现移动端不能顺利实现播放,pc端浏览器可以。

PCM audio

实现audioContext播放时,我萌需要解码,利用decodeAudioDataapi实现解码,我萌都知道,一般音频都要压缩成mp3,aac这样的编码格式,我萌需要先解码成PCM数据才能播放,那PCM 又是什么呢?我萌都知道,声音都是由物体振动产生,但是这样的声波无法被计算机存储计算,我萌需要使用某种方式去刻画声音,于是乎便有了PCM格式的数据,表示麦克风采集声音的频率,采集的位数以及声道数,立体声还是单声道。

Media Source Extensions

Media Source Extensions可以动态的给AudioVideo创建stream流,实现播放,简单的来说,可以很好的播放进行控制,比如再播放的时候实现 seek 功能什么的,也可以在前端对某种格式进行转换进行播放,并不是支持所有的格式的。
点击查看

通过将数据append进SourceBuffer中,MSE把这些数据存进缓冲区,解码实现播放。这里简单的举个使用MSE播放 audio的栗子:

export default class PlaySoundWithMSE{
    constructor(audio) {
        this.audio = audio;
        if(PlaySoundWithMSE.isSupportMSE()) {
            this.pendingBuffer = [];
            this._mediaSource = new MediaSource();
            this.audio.src = URL.createObjectURL(this._mediaSource);
            this._mediaSource.addEventListener('sourceopen', () => {
                this.sourcebuffer = this._mediaSource.addSourceBuffer('audio/mpeg');
                this.sourcebuffer.addEventListener('updateend', 
                this.handleSourceBufferUpdateEnd.bind(this));
            })
        }
    }

    addBuffer(buffer) {
        this.pendingBuffer.push(buffer);
    }

    handleSourceBufferUpdateEnd() {
        if(this.pendingBuffer.length) {
            this.sourcebuffer.appendBuffer(this.pendingBuffer.shift());
        } else {
            this._mediaSource.endOfStream();
        }
    }

    static isSupportMSE() {
        return !!window.MediaSource;
    }
}

HTML5 播放器

谈起html5播放器,你可能知道bilibili的flv.js,它便是依赖Media Source Extensions将flv编码格式的视频转包装成mp4格式,然后实现播放。
点击查看

从流程图中可以看到,IOController实现对视频流的加载,这里支持fetch的 stream能力,WebSocket等,将得到的视频流,这里指的是flv格式的视频流,将其转封装成MP4格式,最后将MP4格式的数据通过appendBuffer将数据喂给MSE,实现播放。

未来

上面谈到的都是视频的播放,你也看到,即使播放都存在很多限制,MSE的浏览器支持还不多,那在视频的编码解码这些要求性能很高的领域,前端能否做一些事情呢?
前端性能不高有很多原因,在浏览器这样的沙盒环境下,同时js这种动态语言,性能不高,所以有大佬提出把c++编译成js ,然后提高性能,或许你已经知道我要说的是什么了,它就是ASM.js,它是js的一种严格子集。我萌可以考虑将一些视频编码库编译成js去运行提高性能,其中就不得不提到的FFmpeg,可以考虑到将其编译成asm,然后对视频进行编解码。
点击查看

写在最后

我萌可以看到,前端对音视频的处理上由于诸多原因,可谓如履薄冰,但是在视频播放上,随着浏览器的支持,还是可以有所作为的。

Rollup

Rollup

下一代打包工具,这是rollup对自己的定位。如今的前端领域,构建工具并不缺少,每个前端工程师都用过或者听过webpack。可以看到的是像React、Vue等框架的构建工具使用的都是rollup。既然如此,这些框架为什么会选择rollup?它的特性是什么?面对不同场景,我们要怎么选择构建工具?本文将一一为你呈现。

Tree Shaking

tree shaking是rollup提出的,这也是rollup一个非常重要的feature,那什么是tree shaking,rollup的解释是在构建代码时,在使用ES6模块化的代码中,会对你的代码进行静态分析,只打包使用到的代码。这样的好处是减少代码的体积。

可以看到它的实现依赖于静态分析,为什么必须使用ES6 modules呢?我们来复习一下ES6 modules的几个特性:

  • import 的模块名只能是字符串常量
  • import binding 是 immutable 的,类似 const
  • 只能作为模块顶层的语句出现,不能出现在 function 里面或是 if 里面等块级作用域中
  • import hoisted,不管 import 的语句出现的位置在哪里,在模块初始化的时候所有的import 都必须已经导入完成。

以上特性使得ES6 Modules缺少了一定的灵活性,但使得所有的依赖都是确定的,能够对代码进行静态分析。不需要依靠运行时去确定依赖关系。
举个栗子:
maths.js

// maths.js
export function square ( x ) {
	return x * x;
}
export function cube ( x ) {
	return x * x * x;
}

main.js

import { cube } from './maths.js';
console.log( cube( 5 ) ); 

执行下面的命令后

$ rollup main.js --o bundle.js --f iife

输出bundle.js

(function () {
'use strict';

// maths.js

function cube(x) {
    return x * x * x;
}

console.log(cube(5));

}());

可以看到,maths.js中square方法没有使用到,没有打包到构建结果中。在构建的时候,加了个参数f,值为iife的选项,构建的后代码的组织形式被一个立即执行函数包裹。

代码构建后输出格式

上面在构建的时候指定了参数f,值为iife的选项,输出了立即执行风格的构建代码,rollup还支持下面几种输出格式:

  • amd - AMD
  • cjs -CommonJS
  • es - ES6 modules
  • umd - UMD
  • system - SystemJS loader

在构建代码的时候,可以根据代码运行环境选择不同的输出格式,如果你的代码是运行在node中那么cjs就可以,如果你的代码运行在浏览器环境中,那么iife就很好,如果两者兼具,那么选择umd
webpack的编译&构建中,提到webpack构建输出的代码其实有三种。

  • 你的业务逻辑代码
  • Runtime - 代码执行的引导
  • Manifest - 模块依赖关系的记录

如果我们对main.js执行下面的命令构建后

webpack main.js dist.js

输出dist.js

/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, {
/******/ 				configurable: false,
/******/ 				enumerable: true,
/******/ 				get: getter
/******/ 			});
/******/ 		}
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__maths_js__ = __webpack_require__(1);

console.log(Object(__WEBPACK_IMPORTED_MODULE_0__maths_js__["a" /* cube */])(5));

/***/ }),
/* 1 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* unused harmony export square */
/* harmony export (immutable) */ __webpack_exports__["a"] = cube;
// maths.js
function square(x) {
    return x * x;
}
function cube(x) {
    return x * x * x;
}

/***/ })
/******/ ]);
  • 可以看到构建结果中的业务逻辑代码,Runtime和Manifest
  • 在Manifest中记录中依赖关系,通过__webpack_require__加载
  • 构建结果中包含了没有使用到的square
  • 构建体积明显比rollup中iife格式大
  • 代码执行的时候,rollup中iife输出格式,代码执行的速度更快,webpack构建出来的还有依赖查找,而且每个模块通过一个函数包裹形式,执行的时候,就形成了一个个的闭包,占用了内存,当然可以在webpack3使用ConcatenationPlugin插件优化这样的输出格式,打包到一个依赖中

对于性能方面the-cost-of-small-modules做了很好的测评,可以了解一下。

没有银弹

webpack诞生的时候,为了解决css、图片等静态文件的构建和使得代码能够按需加载实现了code-splitting,在我们日常线上业务代码开发中,或多或少有一些静态资源需要打包,此时rollup显得不太适用。所以我们可以看到,在构建一些lib的时候可以选择rollup,而在构建一些应用的时候,选择webpack.

puppeteer爬虫的奇妙之旅

puppeteer爬虫的奇妙之旅

@(爬虫)[puppeteer|]

爬虫又称网络机器人。每天或许你都会使用搜索引擎,爬虫便是搜索引擎重要的组成部分,爬取内容做索引。现如今大数据,数据分析很火,那数据哪里来呢,可以通过网络爬虫爬取啊。那我萌就来探讨一下网络爬虫吧。

<img src="data:image/png;base64,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7ctRExcBERABERCBoiQgwVeUy6ZBi4AIiIAIiIAIlBKBQhV8PmMKL9a3O+ecc1zzimuuucY9bbLstddew1577eWaXDDSjxKuvV10KRWZ6mvXMelm4pHNPk455RTcf//9uOiii3DllVe6fa2OoKUcM4rvkEMOweDBg/Hqq6+iR48ebtyUevxu+/FYXpONOJTCW0qvMM1FBERABERABEqfgARf6a+xZigCIiACIiACIlDgBIpB8BHhD3/4Q9ft98EHH8T48eObiDFG9x100EHYZZdd8OabbzpBtrGbbPjSjbLvmWeecdF5rAvI6L2ePXumhZ2JR4vM49gfeeQRXHHFFTjzzDNdMxATe37qrzUTaS7Kr8BvIw1PBERABERABESgjAlI8JXx4mvqIiACIiACIiAChUGgUAWfnwpLocb026+//hqffPIJNt98cwfPpNsTTzyBI4880tW7e/HFFzdKDT6en9c1EcfvNqbPPvsM+++/P+bMmeMiBX/yk5+kF9Okni/rvvjiCycf2Rzk9ddfx9ixY10EH/cJh8PuvJR6/FL0XmG8LjQKERABERABERCB7AlI8GXPSnuKgAiIgAiIgAiIQE4IFKrgM9HF7xRklHpsojFr1iyXxuoLvocffhjHH388Dj74YPz97393dfDaW4PPF23+z/PmzcOvf/1r8Jo/+MEPXPMMXs+vo+cLO0u7veGGG3DhhRdi5MiRLvpvk002abKemSnAOVlsnVQEREAEREAEREAEckBAgi8HUHVKERABERABERABEWgNgUIVfJwDRRnHd+ONN7rae7/4xS9c6q2lsJp4+/Of/4yf//znGDdunEvj5fPtFXw+Q7vO0qVL3XkvueQSJ+hYU2/o0KHpmnoUfazNV1VV5cZtEpLRfytXrsR+++2HKVOmuNTem266yaX3Wudci+BrzdppXxEQAREQAREQAREoBAISfIWwChqDCIiACIiACIhAWRMoZMHHsVGAsUPuBx984CLfDjjggCZprNyHabKnn346fvzjH+Pee+/NSQ2+uro6F7X3s5/9DN26dXPNNdg8w7rm+nXzMqP5LM138uTJTvItW7YMEydOdM05+vXrl56PH7WoOnxl/bLU5EVABERABESgqAhI8BXVcmmwIiACIiACIiACpUgg34LPl2H+zya7nn32WZcKO2TIEEyfPt1Fx3Ez+UfBdtVVV+Hiiy920ozddq3JxhlnnIFTTz0V559/vjuGabCVlZWuWy075PKcXbp0cbXxKOEo1fzafzaeFStW4Omnn8ZJJ53kaubxfL/97W9bvB3sXL64o4Bkii8j+s4++2z86le/ch12bR+L6PO767Z4Ie0gAiIgAiIgAiIgAnkkIMGXR/i6tAiIgAiIgAiIgAiYKGNaK2vYWZOHk08+GXfffXfOAfkCjBezqDWrYUexduCBB+Ldd9/F9ddf72SYiTqKNkoxSrvf/OY3+OMf/4hLL73Upc9SjjGV97TTTkOfPn0wZsyYdLqvTYrHseEF6/mtXr26SVQgBSDFIb8WL16Mp556ynW/5caOuLfddpsThBvaTA5aDb76+nonFzk3dtO99tpr3XUZEXjeeedh+PDhzUYD5nwRdAEREAEREAEREAERaCcBCb52AtThIiACIiACIiACItBeAvmO4DPJyHFQzJkYi0ajrk4d5Rc76FLy1dTUOKFnnWcZBcfUWXbP/fjjj/HAAw84UclzsakFo/oY8cc0WJ6bx3F/ijZuM2bMcI+xbp6l2vpRhJ9//rlronHBBRegU6dOLj2YMpRyr6UIu8xuuP7vvAZFJOv5UWIyBfm6667Ddttth+rq6vQc27u2Ol4EREAEREAEREAEOoKABF9HUNY1REAEREAEREAERGADBPIl+HhdP3XVhBnlF6PeWG/vhBNOcBF2t956K0488UQn/2pra109Poqx+fPnu7p4L730khNwfHzTTTd18u33v/+9q3HH5hyXX355OjqQQo/nYSQdj7EoQF/w8bHZs2e7iMEnn3zSScJ9990XDz74ILp37571/WQyktezFGCL6KPA5Lhuv/12LFmyxIk9pu8eeeSR6bFmfSHtKAIiIAIiIAIiIAJ5JCDBl0f4urQIiIAIiIAIiIAIkEA+BZ/fSMLEFzvVvvzyy07oUZAdccQReOihh1ykHTemtW655ZZOwDESj6mvjOxjwwt206Wo43kZdXfNNde4KD6mxPo17ijcGIXH4/n12WefoW/fvqB0s9Rb1vVjBCEj/hi5x5RlXofn4fE2nmzvIj8y0NJ1eSzlJcfJ5++55x4cdNBB6SjGbM+t/URABERABERABEQgnwQk+PJJX9cWAREQAREQAREQgTwKPkbQmXSz6D0+xqYabIyxaNEijB492kXy9e7d262VRcQx/ZZ18Cjy2KCC3XPHjRuHrl27pteUgo9ikI03WKPPUoBtB56LTTMoFinyBgwYkB6PXYd1/9577z0nDikCTR5mc+PYOUyiWgMPPs6oRL+Zx3PPPYd58+a5eXC/ltJ/s7m+9hEBERABERABERCBjiIgwddRpHUdERABERABERABEVgPgXxF8PnDoexi9BwlGlNvn3jiCRfNdtddd2HUqFFNOuZyP6bmMq110KBBromGyTLKM0u1nTVrFhYsWIBhw4Y5eeeLPT/6zo/so1izc9l31ufjuCje/Ci8lm6ozDFZAxN+9+Wfpe+agPTFX0vX0PMiIAIiIAIiIAIiUAgEJPgKYRU0BhEQAREQAREQgbImkC/Bl9mEgovg1+RjrT1G5FmtPso3/szNUnv5O4UYpZ5/Pl+S+cKOx/rRcSbs7NhMged3+fWv6acWb+jm8cfR3Nh96VfWN6EmLwIiIAIiIAIiUNQEJPiKevk0eBEQAREQAREQgVIgkC/BVwrsNAcREAEREAEREAEREAFAgk93gQiIgAiIgAiIgAjkmYAEX54XQJcXAREQAREQAREQgSInIMFX5Auo4YuACIiACIiACBQ/AQm+4l9DzUAEREAEREAEREAE8klAgi+f9HVtERABERABERABEchjF13BFwEREAEREAEREAERKA0CEnylsY6ahQiIgAiIgAiIQBETUARfES+ehi4CIiACIiACIiACBUBAgq8AFkFDEAEREAEREAERKG8CEnzlvf6avQiIgAiIgAiIgAi0l4AEX3sJ6ngREAEREAEREAERaCcBCb52AtThIiACIiACIiACIlDmBCT4yvwG0PRFQAREQAREQATyT0CCL/9roBGIgAiIgAiIgAiIQDETkOAr5tXT2EVABERABERABEqCgARfSSyjJiECIiACIiACIiACeSMgwZc39LqwCIiACIiACIiACCQJSPDpThABERABERABERABEWgPAQm+9tDTsSIgAiIgAiIgAiKwEQhI8G0EiDqFCIiACIiACIiACJQxAQm+Ml58TV0EREAEREAERKAwCEjwFcY6aBQiIAIiIAIiIAIiUKwEJPiKdeU0bhEQAREQAREQgZIhIMFXMkupiYiACIiACIiACIhAXghI8OUFuy4qAiIgAiIgAiIgAmsJSPDpbhABERABERABERABEWgPAQm+9tDTsSIgAiIgAiIgAiKwEQhI8G0EiDqFCIiACIiACIiACJQxAQm+Ml58TV0EREAEREAERKAwCEjwFcY6aBQiIAIiIAIiIAIiUKwEJPiKdeU0bhEQAREQAREQgZIhIMFXMkupiYiACIiACIiACIhAXghI8OUFuy4qAiIgAiIgAiIgAmsJSPDpbhABERABERABERABEWgPAQm+9tDTsSIgAiIgAiIgAiKwEQhI8G0EiDqFCIiACIiACIiACJQxAQm+Ml58TV0EREAEREAERKAwCEjwFcY6aBQiIAIiIAIiIAIiUKwEJPiKdeU0bhEQAREQAREQgZIhIMFXMkupiYiACIiACIiACIhAXghI8OUFuy4qAiIgAiIgAiIgAmsJSPDpbhABERABERABERABEWgPAQm+9tDTsSIgAiIgAiIgAiKwEQhI8G0EiDqFCIiACIiACIiACJQxAQm+Ml58TV0EREAEREAERKAwCEjwFcY6aBQiIAIiIAIiIAIiUKwEJPiKdeU0bhEQAREQAREQgYIgQDkXCATcWPyf/cHx8Xg8jmAw2Oy+GxJ8dpydj7/b9fg9FoshFAqlL7e+MRQELA1CBERABERABERABEQgJwQk+HKCVScVAREQAREQAREoJwK+hGtsbHRTD4fD68g3Ps7nKeEikUgTKTdp0iQcf/zxTt7x+ZNPPhl33323+9mkHgVhc5tJPhsHv/M4X/yV03poriIgAiIgAiIgAiJQbgQk+MptxTVfERABERABERCBnBCgUONm0XV2kcwIPHs8M/KvOcF3xx13NCvpeCy/KPyaO7+i+HKyxDqpCIiACIiACIiACBQsAQm+gl0aDUwEREAEREAERKDQCVCu8YvRetzWF0HnSzj+zCi+ioqK9PSyqcHXnLSzx6LRqBOLHEdDQ0OTcxc6Q41PBERABERABERABESg/QQk+NrPUGcQAREQAREQAREoUwIm2DKj8Syt1sQf8TCNlo/7jxm2lgSfpeha+q6fsmvpuXV1dU7sWVquovjK9KbUtEVABERABERABMqSgARfWS67Ji0CIiACIiACIrAxCVjUnJ+mO3XqVHTt2hV9+/ZF9+7d17mc3xxjfYLvzjvvdMetr/Yen6PYW7JkCWbNmoU99tjDSURGCPo1/jbmXHUuERABERABERABERCBwiMgwVd4a6IRiYAIiIAIiIAIFAkBSjqruUcJZ9KOwu+VV17BhRdeiJ/+9Kc46KCD0Lt3b3Tp0sVF2HE/P5JvQxF8fiSeLwVra2uxdOlSvPfee7j11lux55574ne/+12aXGZ33SJBqmGKgAiIgAiIgAiIgAi0gYAEXxug6RAREAEREAEREAERyCTg19kzKbfbbrvhnXfewciRI3HWWWdhv/32Q//+/V1kn79tSPAxGo/y0Bpq8DqzZ8/Ghx9+iBtuuAFvvfUWunXrhmnTpqFfv37qnKtbUwREQAREQAREQATKkIAEXxkuuqYsAiIgAiIgAiLQMQRefPFF7L///umovS222AKnnXYaDjvsMPTq1QvV1dWuMQejAB955BFMmDDB7Uvhd9JJJ+FPf/qT+5nP19fXY968eZg8eTLuvvtu/OMf/0hHD1588cW4/PLL3b7crFZfZkffjpm1riICIiACIiACIiACItDRBCT4Opq4ricCIiACIiACIlA2BCjlKPjefPNNVxePGyPxNtlkE5x77rnYd999MXToUNcc4+GHH8aJJ57ohB9F3S9+8QvcddddLp2XEXtTpkxJiz2TeDxXz549wXp/gwcPTnPltZpr5lE24DVRERABERABERABESgzAhJ8Zbbgmq4IiIAIiIAIiEDHEnjhhRdcDT5KO4o81udjA4xoNOpSdydOnOhE3+uvv46TTz45LQF/9KMf4dJLL3UpvozYe+mll9xzVsPPUnYvueQSF71n52XUHiWhycSOna2uJgIiIAIiIAIiIAIikA8CEnz5oK5rioAIiIAIiIAIlAUBSjcKuR122AEffPBBes6WQmsSbrPNNsPOO++MBx54wMk/RuB973vfc99ZY48y0DYTezwHa+/NmDHDdeplxB4lYmYDj7IArUmKgAiIgAiIgAiIQJkTkOAr8xtA0xcBERABERABEcgtAQo3RvEdffTRWLNmTbo+HoWcpe3az4zw4/782tBmko+196644or0rs01+sjt7HR2ERABERABERABERCBQiAgwVcIq6AxiIAIiIAIiIAIlCQBE24Udvvssw/eeOONdeSdNcKgtPPFnj1uEX32vDXS6NOnD6ZPn47evXu7yD1ei9GCtvFc/u8lCViTEgEREAEREAEREAERcAQk+HQjiIAIiIAIiIAIiEAOCZh8Y9fbww8/3Ek3ptxanTw/ko/DMKHH4zKf4/MUfZR/5513nove4+9+Uw012MjhYurUIiACIiACIiACIlCgBCT4CnRhNCwREAEREAEREIHSIEBRRyFHqbfffvvhtddecxOjmONzFpFHmceoO/vdmmmY9OPxVruPnXMZvde/f/80JB7L53lebnbd0qCoWYiACIiACIiACIiACGyIgASf7g8REAEREAEREAERyCEBvy7eM888g3HjxmH16tVpWcdLWzquiTkTgDzWb8jBxykCzz33XFx11VU5HLVOLQIiIAIiIAIiIAIiUEwEJPiKabU0VhEQAREQAREQgaIlwAg8pt/uttturjOuL/H8SVndPEvhtYg+i/irrq7GzJkzwRp8Fq1XtFA0cBEQAREQAREQAREQgY1CQIJvo2DUSURABERABERABESgeQKZqbJPP/00jj322CYddRmlxy+TetYl185otfi4zyWXXILLLrtMuEVABERABERABERABEQgTUCCTzeDCIiACIiACIiACOSQgKXoMoLPovP23ntvvP766+l6e7y8ReOZ5ONj3N+adPD5Xr16YerUqa72njrk5nDRdGoREAEREAEREAERKDICEnxFtmAargiIgAiIgAiIQPEQ8Ovv1dfXo7Ky0kXpvfDCCzjssMPSjTDYIMMknzXesNp7frON888/H1dffbXbV000iuc+0EhFQAREQAREQAREINcEJPhyTVjnFwEREAEREAERKFsCJvj8Trqsw8dtzz33xL/+9S+XmkuJ19jY6B7PbKrBxygGu3btig8++ACDBg1yklD198r2ttLERUAEREAEREAERGAdAhJ8uilEQAREQAREQAREIIcEKO5Mxtl3Pvb888/juOOOcx11M1NxKfBYd4/7NzQ0uJ/PO+88XHnllenIPUXw5XDRdGoREAEREAEREAERKDICEnxFtmAargiIgAiIQIERSKTGE7BxxZsOMBEE0s8Btrvt5D2VPi5zn6b7ZpwfwQIDouH4BCjyKOe4mZDzv+++++549913wRRdS8X1U3J5HCP++DV79mz07NnTST/JvfK9z9b3/kAia99Pmn+fWOftqnwxauYiIAIiIAIiUHIEJPhKbkk1IREQAREQgQ4j4D4tpz5Ir0/wxQNAIOSGxD1jPMZzfuGMT+uJQHK/RIKpmk1nEnTPuGe9D/LJdE9txUngmWeewzHHHOM66nKz7rl+mi4fu/jii3HZZb9DPM59knNt7h4pTgrlO2p7+be0lnyeX8mb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WAEr0GwFDPiarbjPZwWsgBWwAlbACliBzlLAgK+z5rOlRmPA11LT4c5YAStgBaxACytgwNfCk+OuWQErYAWsgBWwAlagDRQw4GuDSWrXLhrwtevMud9WwApYASvQbAUM+JqtuM9nBayAFbACVsAKWIHOUsCAr7Pms6VGY8DXUtPhzlgBK2AFrEALK2DA18KT465ZAStgBayAFbACVqANFDDga4NJatcuGvC168y531bAClgBK9BsBQz4mq24z2cFrIAVsAJWwApYgc5SwICvs+azpUZjwNdS0+HOWAErYAWsQAsrYMDXwpPjrlkBK2AFrIAVsAJWoA0UMOBrg0lq1y4a8LXrzLnfVsAKWAEr0GwFDPiarbjPZwWsgBWwAlbACliBzlLAgK+z5rOlRmPA11LT4c5YAStgBaxACytgwNfCk+OuWQErYAWsgBWwAlagDRQw4GuDSWrXLhrwtevMud9WwApYASvQbAUM+JqtuM9nBayAFbACVsAKWIHOUsCAr7Pms6VGY8DXUtPhzlgBK2AFrEALK2DA18KT465ZAStgBayAFbACVqANFDDga4NJatcuGvC168y531bAClgBK9BsBQz4mq24z2cFrIAVsAJWwApYgc5SwICvs+azpUZjwNdS0+HOWAErYAWsQAsrYMDXwpPjrlkBK2AFrIAVsAJWoA0UMOBrg0lq1y4a8LXrzLnfVsAKWAEr0GwFDPiarbjPZwWsgBWwAlbACliBzlLAgK+z5rOlRmPA11LT4c5YAStgBaxACytgwNfCk+OuWQErYAWsgBWwAlagDRQw4GuDSWrXLhrwtevMud9WwApYASvQbAUM+JqtuM9nBayAFbACVsAKWIHOUsCAr7Pms6VGY8DXUtPhzlgBK2AFrEALK2DA18KT465ZAStgBayAFbACVqANFDDga4NJatcuGvC168y531bAClgBK9BsBQz4mq24z2cFrIAVsAJWwApYgc5SwICvs+azpUZjwNdS0+HOWAErYAWsQAsrYMDXwpPjrlkBK2AFrIAVsAJWoA0UMOBrg0lq1y4a8LXrzLnfVsAKWAEr0GwFDPiarbjPZwWsgBWwAlbACliBzlLAgK+z5rOlRmPA11LT4c5YAStgBaxACytgwNfCk+OuWQErYAWsgBWwAlagDRQw4GuDSWrXLhrwtevMud9WwApYASvQbAUM+JqtuM9nBayAFbACVsAKWIHOUsCAr7Pms6VGY8DXUtPhzlgBK2AFrEALK2DA18KT465ZAStgBayAFbACVqANFDDga4NJatcuGvC168y531bAClgBK9BsBQz4mq24z2cFrIAVsAJWwApYgc5SwICvs+azpUZjwNdS0+HOWAErYAWsQAsrYMDXwpPjrlkBK2AFrIAVsAJWoA0UMOBrg0lq1y4a8LXrzLnfVsAKWAEr0GwFDPiarbjPZwWsgBWwAlbACliBzlLAgK+z5rOlRmPA11LT4c5YAStgBaxACytgwNfCk+OuWQErYAWsgBWwAlagDRQw4GuDSWrXLhrwtevMud9WwApYASvQbAUM+JqtuM9nBayAFbACVsAKWIHOUsCAr7Pms6VGY8DXUtPhzlgBK2AFrEALK2DA18KT465ZAStgBayAFbACVqANFDDga4NJatcuGvC168y531bAClgBK9BsBQz4mq24z2cFrIAVsAJWwApYgc5SwICvs+azpUZjwNdS0+HOWAErYAWsQAsrYMDXwpPjrlkBK2AFrIAVsAJWoA0UMOBrg0lq1y4a8LXrzLnfVsAKWAEr0GwFDPiarbjPZwWsgBWwAlbACliBzlLAgK+z5rOlRmPA11LT4c5YAStgBaxACytgwNfCk+OuWQErYAWsgBWwAlagDRQw4GuDSWrXLhrwtevMud9WwApYASvQbAUM+JqtuM9nBayAFbACVsAKWIHOUsCAr7Pms6VGY8DXUtPhzlgBK2AFrEALK2DA18KT465ZAStgBayAFbACVqANFDDga4NJatcuGvC168y531bAClgBK9BsBQz4mq24z2cFrIAVsAJWwApYgc5SwICvs+azpUZjwNdS0+HOWAErYAWsQAsrYMDXwpPjrlkBK2AFrIAVsAJWoA0UMOBrg0lq1y4a8LXrzLnfVsAKWAEr0GwFDPiarbjPZwWsgBWwAlbACliBzlLAgK+z5rOlRmPA11LT4c5YAStgBaxACytgwNfCk4tHLO4AACAASURBVOOuWQErYAWsgBWwAlagDRQw4GuDSWrXLhrwtevMud9WwApYASvQbAUM+JqtuM9nBayAFbACVsAKWIHOUsCAr7Pms6VGY8D35OkYGBiIvr6+mD9/fsyaNavswENdT09PU+aOc+VtsudVe5NtpymD90msgBWwAi2sgAFfC0+Ou2YFrIAV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J4qPA27MxedfWDTF19dFYrz34p577mmXXHJJXkoybh0iIAKVJyDBV/k10AhEQAREQAREQAREoJYJSPDV8upV+dgl+PpW8CGQ2O/Nq7ci6pBAHL5vG997ui7SizTd9957z956660gvTjWW289+9vf/mbDhw/Pp4uWYg8+T1n1qLE4RTX+3m/ruMgGUXcUtSAS7sADD7SLL744H/3XUxSav154XmfXwQ5hd9NNN9mVV14Z9uDzccf73CHu9tprrxANiAxEmvnr8b56tLfNNtvYP//5zxDBt8kmm3Ror1D2FRYjIYLv6quvDmvB3G+55RabNGlSYEHqr0cyOjPvm3bomzV10UikI/sQLrXUUnbYYYflJWNP+/dV+duMhicCdUNAgq9ullITEQEREAEREAEREIGKEJDgqwj2ZHQqwbdwndnrjvRMF22IG/ag4+hKQMVpnHGqJhKHiqwbbLBBvgPaQPD5HnxEwb3xxhufqaIbR9JxsUe77bPPPmFvOg5kG1LJK8i6AEIYrbjiivb2228HsXT66afbCSecUNTN7HOM93vrqtAFDXp1WL6fOnVqiLpjP7p11lnHfvnLX4Z5IrxiMegpsnFasc+3qxRYH3y8Bvvtt5+NHz/ezjrrrCDxCgWYr8tBBx0UmJ977rm222675YuEeMosjBgT+/hRUIQUW2RffHi0nqf2eoRj4T59cCOajwhNBN2jjz4aCqhwHgy84IbzhR9terq2C1qYufSNC6h0VkikqIXVSSIgAiUjIMFXMpRqSAREQAREQAREQAQSSUCCL5HL3jeTluBbyPmll16y1VdfPcg89mxjLzRkFRLGJQ3yhaMzoTRx4sT8/m2kZz711FMhjTbe9607wRe3Wfg9ooeqtmuvvbZNmTIljIlCG1SSjSUcKa7M4f333w/nUKjhxBNP7LGCq1Nw2cS1LvA82tAFU9wf35PKe+aZZ4Y948aOHRsi4ZZbbrl8gQjaJpqO8VON14uCxFVqi73bfR875s5+hqQOU+XXi5TE7TBeoh5JmV122WVDhF1cAAOJxh58zPX1118Pou13v/tdiLzzVF6PtnPpy8+eSs1zzggOVETefPPN7d1337XTTjstpO1yDv2T3sx94MLTpSdcvOAIHIneI7WZKsS+P19nkZPF8tJ5IiACpSUgwVdanmpNBERABERABERABJJGQIIvaSveh/OV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Rf0NRIKv/tZUMxIBERABESgPAQm+8nBVqyIgAiIgAiIgAiKQFAISfElZ6QrMU4KvAtDVpQiIgAiIQE0SkOCryWXToEVABERABERABESgaghI8FXNUtTfQCT46m9NNSMREAEREIHyEJDgKw9XtSoCIiACIiACIiACSSEgwZeUla7APCX4KgBdXYqACIiACNQkAQm+mlw2DVoEREAEREAEREAEqoaABF/VLEX9DUSCr/7WVDMSAREQAREoDwEJvvJwVasiIAIiIAIiIAIikBQCEnxJWekKzFOCrwLQ1aUIiIAIiEBNEpDgq8ll06BFQAREQAREQAREoGoISPBVzVLU30Ak+OpvTTUjERABERCB8hCQ4CsPV7UqAiIgAiIgAiIgAkkhIMGXlJWuwDwl+CoAXV2KgAiIgAjUJAEJvppcNg1aBERABERABERABKqGgARf1SxF/Q1Egq/+1lQzEgEREAERKA8BCb7ycFWrIiACIiACIiACIpAUAhJ8SVnpCsxTgq8C0NWlCIiACIhATRKQ4KvJZdOgRUAEREAEREAERKBqCEjwVc1S1N9AJPjqb001IxEQAREQgfIQkOArD1e1KgIiIAIiIAIiIAJJISDBl5SVrsA8JfgqAF1dioAIiIAI1CQBCb6aXDYNWgREQAREQAREQASqhoAEX9UsRf0NRIKv/tZUMxIBERABESgPAQm+8nBVqyIgAiIgAiIgAiKQFAISfElZ6QrMU4KvAtDVpQiIgAiIQE0SkOCryWXToEVABERABERABESgaghI8FXNUtTfQCT46m9NNSMREAEREIHyEJDgKw9XtSoCIiACIiACIiACSSEgwZeUla7APCX4KgBdXYqACIiACNQkAQm+mlw2DVoEREAEREAEREAEqoaABF/VLEX9DUSCr/7WVDMSAREQAREoDwEJvvJwVasiIAIiIAIiIAIikBQCEnxJWekKzFOCrwLQ1aUIiIAIiEBNEpDgq8ll06BFQAREQAREQAREoGoISPBVzVLU30Ak+OpvTTUjERABERCB8hCQ4CsPV7UqAiIgAiIgAiIgAkkhIMGXlJWuwDwl+CoAXV2KgAiIgAjUJAEJvppcNg1aBERABERABERABKqGgARf1SxF/Q1Egq/+1lQzEgEREAERKA8BCb7ycFWrIiACIiACIiACIpAUAhJ8SVnpCsxTgq8C0NWlCIiACIhATRKQ4KvJZdOgRUAEREAEREAERKBqCEjwVc1S1N9AJPjqb001IxEQAREQgfIQkOArD1e1KgIiIAIiIAIiIAJJISDBl5SVrsA8JfgqAF1dioAIiIAI9CmBtrY2a2pqCn0i6VKpVL5/fuYofC7+2U/ureBLp9PW2NiY77vw5z6Fos5EQAREQAREQAREQAT6nIAEX58jT06HEnzJWWvNVAREQASSSgAxx1cmkwmCrRiZByvOR8I1Nzfn5eCNN95o++yzT2iDNseNG2dXXXVVt2hpx+Ui/fNzQ0NDp8IxqWukeYuACIiACIiACIhAEghI8CVhlSs0Rwm+CoFXtyIgAiIgAhUjgLRD0Llkc/nGY2eRez7QRY3gK4wa5Hcv0rC7vioGRx2LgAiIgAiIgAiIgAiUjYAEX9nQqmEJPt0DIiACIiAC9U6gMGIO4RbLvcL5e7Qf5xRG+y1KBF/cfjwWF4sSffV+B2p+IiACIiACIiACIpAjIMGnO6FsBCT4yoZWDYuACIiACFQJga5SYj2SL/zPVipV1N58iyr46MvHEe/DVyj8qgSZhiECIiACIiACIiACIlAGAhJ8ZYCqJnMEJPh0J4iACIiACCSFQJwqGxfeiOffnXBb1BTdQr6tra35ff2Swl7zFAEREAEREAEREAERUASf7oEyEpDgKyNcNS0CIiACIlAVBLxarT960QtScGfPnm39+/fvUGU3TuGNK90uquCL25g5c6YNHTq0KrhoECIgAiIgAiIgAiIgAn1LQBF8fcs7Ub1J8CVquTVZERABEUg0ARdtHsmH6Hv44YdtzJgxtvjii9vw4cM/U/gijvpbVMFHP/Pnz7epU6fas88+a9tvv32IoG9paQmVeLUHX6JvS01eBERABERABEQgQQQk+BK02H09VQm+viau/kRABERABPqagEu0OJKOMZCmO3HixCDcDj/8cNt7771t7NixNnjw4CDd4jReT6sdP3687bnnnuF19tLbb7/97JprrslLOp6nPz/mzp1rM2bMsFtuucUuuugiGzdunJ100kl5sVc4pr5mo/5EQAREQAREQAREQAT6joAEX9+xTlxPEnyJW3JNWAREQAQSR8AFnws7HjmampoMcbfzzjvbhAkTQgTfIYccEmTfsGHDQlQfR3w9RTYOO+ww+/TTT8P1Bx54oF199dXhvLh9vp8+fbrdeuutdtZZZ9mUKVNCe5MmTQptkx6s6L3E3YqasAiIgAiIgAiIQMIJSPAl/AYo5/Ql+MpJV22LgAiIgAhUAwEXabFQI3IOyUbEHWm6m266aV7msSffcccdZ3vttZcttdRSQfx5pN31119vBxxwQL7q7ve+97284KMBIvY+/vhju+222+yCCy6wN998M5xLmu7ZZ59tJ5xwQr6tWB5WAyeNQQREQAREQAREQAREoLwEJPjKyzfRrUvwJXr5NXkREAERSASBeM89JozY44gl3zbbbGP33HNPXtxxDsUwDj744JCGu+KKK1q/fv3s5ptvDqm8pOdyPa+TokuxDo/Yu+yyy+yVV14JfdAOcg9R+Pzzz9uQIUPCtb4HXyIWQJMUAREQAREQAREQAREIBCT4dCOUjYAEX9nQqmEREAEREIEqIhBH8cVVchkiabpPPvmkbbTRRiFt1vfQI/IOQUdK7UEHHRRSc++///6Qwouk49h3333ttNNOszvuuCNE7L322mshdZcUXZeAnHfOOefYscceGwSiC0bEH315W1WES0MRAREQAREQAREQAREoAwEJvjJAVZM5AhJ8uhNEQAREQASSQKCwmIVLPJd9CLktttjCHnzwwYADCYd4Q/554QxEH6m8d955Zx7ZxhtvHPbXmzx5cniOKD+uQd75QYov4m+xxRYLTxVW800Cf81RBERABERABERABERAEXy6B8pIQIKvjHDVtAiIgAiIQNUQQKrxRXQdwo7DH5FxCL3HHnvMvva1r3UolhFH4fn3tOECLxZ5no4bT7qlpcXOPPPMEL3H4X255FOqbtXcIhqICIiACIiACIiACJSdgCL4yo44uR1I8CV37TVzERABEUgKgcLovVi0eequn7Ptttva3Xff3SkaF3j+2Nzc3CHCzyP9PA2XNqmc+/LLL9uIESNCm15p10VfUtZA8xQBERABERABERABEVAEn+6BMhKQ4CsjXDUtAiIgAiJQMwQ8ZffRRx+1zTff/DNptj1NJI70I013/vz5ISqQ6D0q5+oQAREQAREQAREQAREQAUXw6R4oGwEJvrKhVcMiIAIiIAI1QiAuqsHvxe985zs2YcKEsAefF8Lobioe0efFNfzcJZZYIkTvUY1XhwiIgAiIgAiIgAiIgAhI8OkeKBsBCb6yoVXDIiACIiACNULA03M9bZZCG0TxFSP3mGK89x7f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"/ >


[TOC]

爬虫的工作原理

如图所示,这是爬虫的流程图,可以看到通过一个种子URL开启爬虫的爬取之旅,通过下载网页,解析网页中内容存储,同时解析中网页中的URL 去除重复后加入到等待爬取的队列。然后从队列中取到下一个等待爬取的URL重复以上步骤,是不是很简单呢?

广度(BFS)还是深度(DFS)优先策略

上面也提到在爬取完一个网页后从等待爬取的队列中选取一个URL去爬去,那如何选择呢?是选择当前爬取网页中的URL 还是继续选取当前URL中同级URL呢?这里的同级URL是指来自同一个网页的URL,这就是爬取策略之分。

优先策略

广度优先策略(BFS)

广度优先策略便是将当前某个网页中URL先爬取完全,再去爬取从当前网页中的URL爬取的URL,这就是BFS,如果上图的关系图表示网页的关系,那么BFS的爬取策略将会是:(A->(B,D,F,G)->(C,F));

深度优先策略(DFS)

深度优先策略爬取某个网页,然后继续去爬取从网页中解析出的URL,直到爬取完。
(A->B->C->D->E->F->G)

下载网页

下载网页看起来很简单,就像在浏览器中输入链接一样,下载完后浏览器便能显示出来。当然结果是并不是这样的简单。
####模拟登录
对于一些网页来说需要登录才能看到网页中内容,那爬虫怎么登录呢?其实登录的过程就是获取访问的凭证(cookie,token...)

let cookie = '';
let j = request.jar()
async function login() {
    if (cookie) {
        return await Promise.resolve(cookie);
    }
    return await new Promise((resolve, reject) => {
        request.post({
            url: 'url',
            form: {
                m: 'username',
                p: 'password',
            },
            jar: j
        }, function(err, res, body) {
            if (err) {
                reject(err);
                return;
            }
            cookie = j.getCookieString('url');
            resolve(cookie);
        })
    })
}

这里是个简单的栗子,登录获取cookie, 然后每次请求都带上cookie.

获取网页内容

有的网页内容是服务端渲染的,没有CGI能够获得数据,只能从html中解析内容,但是有的网站的内容并不是简单的便能获取内容,像linkedin这样的网站并不是简单的能够获得网页内容,网页需要通过浏览器执行后才能获得最终的html结构,那怎么解决呢?前面我萌提到浏览器执行,那么我萌有没有可编程的浏览器呢?puppeteer,谷歌chrome团队开源的无头浏览器项目,利用无头浏览器便能模拟用户访问,便能获取最重网页的内容,抓取内容。
利用puppeteer 模拟登录

async function login(username, password) {
    const browser = await puppeteer.launch();
    page = await browser.newPage();
    await page.setViewport({
        width: 1400,
        height: 1000
    })
    await page.goto('https://maimai.cn/login');
    console.log(page.url())
    await page.focus('input[type=text]');
    await page.type(username, { delay: 100 });
    await page.focus('input[type=password]');
    await page.type(password, { delay: 100 });
    await page.$eval("input[type=submit]", el => el.click());
    await page.waitForNavigation();
    return page;
}

执行login()后便能像在浏览器中登录后,便能像浏览器中登录后便能获取html中的内容,当让w哦萌也可以直接请求CGI

async function crawlData(index, data) {
                    let dataUrl = `https://maimai.cn/company/contacts?count=20&page=${index}&query=&dist=0&cid=${cinfo.cid}&company=${cinfo.encodename}&forcomp=1&searchTokens=&highlight=false&school=&me=&webcname=&webcid=&jsononly=1`;
                    await page.goto(dataUrl);
                    let res = await page.evaluate((e) => {
                        return document.body.querySelector('pre').innerHTML;
                    });
                    console.log(res)
                    res = JSON.parse(res);
                    if (res && res.result == 'ok' && res.data.contacts && res.data.contacts.length) {
                        data = data.concat(res.data.contacts.map((item) => {
                            let contact = item.contact;
                            console.log(contact.name)
                            return {
                                name: contact.name,
                                occupation: contact.line4.split(',')[0],
                                company: contact.company,
                                title: contact.position
                            }
                        }));
                        return await crawlData(++index, data);
                    }
                    return data;
                }

像有的网站,拉钩,每次爬取的cookie都一样,也能利用无头浏览器取爬取,这样每次就不用每次爬取的时候担心cookie.

写在最后

当然爬虫不仅仅这些,更多的是对网站进行分析,找到合适的爬虫策略。对后关于puppeteer,不仅仅可以用来做爬虫,因为可以编程,无头浏览器,可以用来自动化测试等等。

webpack的编译&构建

webpack的编译&构建

上一篇文章webpack详解中介绍了webpack基于事件流编程,是个高度的插件集合,整体介绍了webpack 的编译流程。本文将单独聊一聊最核心的部分,编译&构建。

webpack的编译

重要的构建节点

webpack的构建中总会经历如下几个事件节点。

  • before-run 清除缓存
  • run 注册缓存数据钩子
  • compile 开始编译
  • make 从入口分析依赖以及间接依赖模块,创建模块对象
  • build-module 模块构建
  • seal 构建结果封装, 不可再更改
  • after-compile 完成构建,缓存数据
  • emit 输出到dist目录

其中make是整个构建中最核心的部分编译,通过模块工厂函数创建模块,然后对模块进行编译。

在make钩子的编译

Alt text
上图中提到的*ModuleFactory是指模块工厂函数,之所以会有模块工厂这样的函数,还要从webpack中entry的配置说起,在webpack的配置项中entry支持如下类型:

  • 字符类型string
  • 字符数组类型[string]
  • 多页面对象key-value类型object { <key>: string | [string] }
  • 也支持一个函数,返回构建的入口(function: () => string | [string] | object { <key>: string | [string] })

为了处理以后不同类型的入口模块,所以就需要个模块工厂来处理不同的入口模块类型。

  • singleEntry: string|object { <key>: string }
  • multiEntry: [string]|object { <key>: [string] }
  • dynamicEntry: (function: () => string | [string] | object { <key>: string | [string] })

上图中为了简单说明构建的流程,就以最直接的singleEntry类型说起,对于此类入口模块,webpack均使用NormalModuleFactory来创建模块,这个创建的模块的类型叫NormalModule,在NormalModule中实现了模块的构建方法build,使用runLoaders对模块进行加载,然后利用进行解析,分析模块依赖,递归构建。

构建封装seal

到构建封装阶段时候,代码构建已经完毕,但是如何将这些代码按照依赖引用逻辑组织起来,当浏览器将你构建出来的代码加载到浏览器的时候,仍然能够正确执行。在webpack中通过Manifest记录各个模块的详细要点,通过Runtime来引导,加载执行模块代码,特别是异步加载。

###Runtime
如上所述,我们这里只简略地介绍一下。runtime,以及伴随的 manifest 数据,主要是指:在浏览器运行时,webpack 用来连接模块化的应用程序的所有代码。runtime 包含:在模块交互时,连接模块所需的加载和解析逻辑。包括浏览器中的已加载模块的连接,以及懒加载模块的执行逻辑。

###Manifest
那么,一旦你的应用程序中,形如 index.html 文件、一些 bundle 和各种资源加载到浏览器中,会发生什么?你精心安排的 /src 目录的文件结构现在已经不存在,所以 webpack 如何管理所有模块之间的交互呢?这就是 manifest 数据用途的由来……
当编译器(compiler)开始执行、解析和映射应用程序时,它会保留所有模块的详细要点。这个数据集合称为 "Manifest",当完成打包并发送到浏览器时,会在运行时通过 Manifest 来解析和加载模块。无论你选择哪种模块语法,那些 import 或 require 语句现在都已经转换为 webpack_require 方法,此方法指向模块标识符(module identifier)。通过使用 manifest 中的数据,runtime 将能够查询模块标识符,检索出背后对应的模块。

定义了一个立即执行函数,声明了__webpack_require__,对各种模块进行加载。

(function(modules) { // webpackBootstrap
    var installedModules = {}; // cache module
    function __webpack_require__(moduleId) { // 模块加载
        // Check if module is in cache
        if (installedModules[moduleId]) {
            return installedModules[moduleId].exports;
        }
        // Create a new module (and put it into the cache)
        var module = installedModules[moduleId] = {
            i: moduleId,
            l: false,
            exports: {}
        };
        // Execute the module function
        modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
        // Flag the module as loaded
        module.l = true;
        // Return the exports of the module
        return module.exports;
    }

    // expose the modules object (__webpack_modules__)
    __webpack_require__.m = modules;

    // expose the module cache
    __webpack_require__.c = installedModules;

    // define getter function for harmony exports
    __webpack_require__.d = function(exports, name, getter) {
        if (!__webpack_require__.o(exports, name)) {
            Object.defineProperty(exports, name, {
                configurable: false,
                enumerable: true,
                get: getter
            });
        }
    };

    // getDefaultExport function for compatibility with non-harmony modules
    __webpack_require__.n = function(module) {
        var getter = module && module.__esModule ?
            function getDefault() { return module['default']; } :
            function getModuleExports() { return module; };
        __webpack_require__.d(getter, 'a', getter);
        return getter;
    };

    // Object.prototype.hasOwnProperty.call
    __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };

    // __webpack_public_path__
    __webpack_require__.p = "";

    // Load entry module and return exports
    return __webpack_require__(__webpack_require__.s = 0);
})([/**modules*/])

上面提到的代码片段便是webpack构建后在浏览器中执行的引导代码。也就是上面提到的runtime。它是个立即执行函数,那么入参modules便是上面的Manifest,组织各个模块的依赖逻辑。

(function(modules){
	// ...
	// runtime
	function __webpack_require__(moduleId) {
		// 加载逻辑
	}
	// ...
})([function (module, exports, __webpack_require__) {

    var chunk1 = __webpack_require__(1);
    var chunk2 = __webpack_require__(2);
   
}, function (module, exports, __webpack_require__) {

    __webpack_require__(2);
    var chunk1 = 1;
    exports.chunk1 = chunk1;
}, function (module, exports) {

    var chunk2 = 1;
    exports.chunk2 = chunk2;
}])

上面说到了runtimemanifest就是在seal阶段注入的

class Compilation extends Tapable {
   
    seal(callback) {
        this.hooks.seal.call();
        // ...
        if (this.hooks.shouldGenerateChunkAssets.call() !== false) {
            this.hooks.beforeChunkAssets.call();
            this.createChunkAssets();
        }
        // ...
    }
  
    createChunkAssets() {
	    // ...
		for (let i = 0; i < this.chunks.length; i++) {
			const chunk = this.chunks[i];
			// ...
				const template = chunk.hasRuntime() 
					? this.mainTemplate
					: this.chunkTemplate; // 根据是否有runTime选择模块,入口文件是true, 需要异步加载的文件则没有
				const manifest = template.getRenderManifest({ 
					// 生成manifest
					chunk,
					hash: this.hash,
					fullHash: this.fullHash,
					outputOptions,
					moduleTemplates: this.moduleTemplates,
					dependencyTemplates: this.dependencyTemplates
				}); // [{ render(), filenameTemplate, pathOptions, identifier, hash }]
				// ...
    }
}

通过template最后将代码组织起来,上面看到的构建后的代码就是mainTemplate生成的。

写在最后

通过template生成最后代码,构建已经完成,接下来就是将代码输出到dist 目录。

浅谈前端中的错误处理

浅谈前端中的错误处理

某一天用户反馈打开的页面白屏幕,怎么定位到产生错误的原因呢?日常某次发布怎么确定发布会没有引入bug呢?此时捕获到代码运行的bug并上报是多么的重要。

既然捕获错误并上报是日常开发中不可缺少的一环,那怎么捕获到错误呢?万能的**try...catch**

try{

throw new Error()

} catch(e) {

// handle error

}

看上去错误捕获是多么的简单,然而下面的场景下就不能捕获到了

try {

setTimeout(() => {

throw new Error('error')

})

} catch (e) {

// handle error

}

你会发现上面的例子中的错误不能正常捕获,看来错误捕获并不是这样简单**try...catch**就能搞定,当然你也可以为异步函数包裹一层**try...catch**来处理。

浏览器中,**window.onerror**来捕获你的错误

window.onerror = function (msg, url, row, col, error) {

console.log('error');

console.log({

msg, url, row, col, error

})

};

捕获到错误后就可以将错误上报,上报方式很简单,你可以通过创建简单的**img**,通过**src**指定上报的地址,当然为了避免上报发送过多的请求,可以对上报进行合并,合并上报。可以定时将数据进行上报到服务端。

但但你去看错误上报的信息的时候,你会发现一些这样的错误**Script error**

因为浏览器的同源策略,对于不同域名的错误,都抛出了**Script error**,怎么解决这个问题呢?特别是现在基本上js资源都会放在cdn上面。

解决方案

1:所有的资源都放在同一个域名下。但是这样也会存在问题是不能利用cdn的优势。

2:增加跨域资源支持,在cdn 上增加支持主域的跨域请求支持,在script 标签加**crossorigin**属性

在使用Promise过程中,如果你没有catch,那么可以这样来捕获错误

window.addEventListener("unhandledrejection", function(err, promise) { 
    // handle error here, for example log   
});

如何在NodeJs中捕获错误

NodeJs中的错误捕获很重要,因为处理不当可能导致服务雪崩而不可用。当然了不仅仅知道如何捕获错误,更应该知道如何避免某些错误。

  • 当你写一个函数的时候,你也许曾经思考过当函数执行的时候出现错误的时候,我是应该直接抛出throw,还是使用callback或者event emitter还是其它方式分发错误呢?

  • 我是否应该检查参数是否是正确的类型,是不是null

  • 如果参数不符合的时候,你怎么办呢?抛出错误还是通过callback等方式分发错误呢?

  • 如果保存足够的错误来复原错误现场呢?

  • 如果去捕获一些异常错误呢?try...catch还是domain

操作错误VS编码错误

1. 操作错误

操作错误往往发生在运行时,并非由于代码bug导致,可能是由于你的系统内存用完了或者是由于文件句柄用完了,也可能是没有网络了等等

2.编码错误

编码错误那就比较容易理解了,可能是undefined却当作函数调用,或者返回了不正确的数据类型,或者内存泄露等等

处理操作错误

  • 你可以记录一下错误,然后什么都不做

  • 你也可以重试,比如因为链接数据库失败了,但是重试需要限制次数

  • 你也可以将错误告诉前端,稍后再试

  • 也许你也可以直接处理,比如某个路径不存在,则创建该路径

处理编码错误

错误编码是不好处理的,因为是由于编码错误导致的。好的办法其实重启该进程,因为

  • 你不确定某个编码错误导致的错误会不会影响其它请求,比如建立数据库链接错误由于编码错误导致不能成功,那么其它错误将导致其它的请求也不可用

  • 或许在错误抛出之前进行IO操作,导致IO句柄无法关闭,这将长期占有内存,可能导致最后内存耗尽整个服务不可用。

  • 上面提到的两点其实都没有解决问题根本,应该在上线前做好测试,并在上线后做好监控,一旦发生类似的错误,就应该监控报警,关注并解决问题

如何分发错误

  • 在同步函数中,直接throw出错误

  • 对于一些异步函数,可以将错误通过callback抛出

  • async/await可以直接使用try..catch捕获错误

  • EventEmitter抛出error事件

NodeJs的运维

一个NodeJs运用,仅仅从码层面是很难保证稳定运行的,还要从运维层面去保障。

多进程来管理你的应用

单进程的nodejs一旦挂了,整个服务也就不可用了,所以我萌需要多个进程来保障服务的可用,某个进程只负责处理其它进程的启动,关闭,重启。保障某个进程挂掉后能够立即重启。

可以参考TSW中多进程的设计。master负责对worker的管理,worker和master保持这心跳监测,一旦失去,就立即重启之。

domain
process.on('uncaughtException', function(err) {
    console.error('Error caught in uncaughtException event:', err);
});
process.on('unhandleRejection', function(err) {
  // TODO
})

上面捕获nodejs中异常的时候,可以说是很暴力。但是此时捕获到异常的时候,你已经失去了此时的上下文,这里的上下文可以说是某个请求。假如某个web服务发生了一些异常的时候,还是希望能够返回一些兜底的内容,提升用户使用体验。比如服务端渲染或者同构,即使失败了,也可以返回个静态的html,走降级方案,但是此时的上下文已经丢失了。没有办法了。

function domainMiddleware(options) {
    return async function (ctx, next) {
        const request = ctx.request;
        const d = process.domain || domain.create();
        d.request = request;
        let errHandler = (err) => {
            ctx.set('Content-Type', 'text/html; charset=UTF-8');
            ctx.body = options.staticHtml;
        };
        d.on('error', errHandler);
        d.add(ctx.request);
        d.add(ctx.response);
        try {
            await next();
        } catch(e) {
            errHandler(e)
        }
    }

上面是一个简单的koa2的domain的中间件,利用domain监听error事件,每个请求的Request, Response对象在发生错误的时候,均会触发error 事件,当发生错误的时候,能够在有上下文的基础上,可以走降级方案。

如何避免内存泄露

内存泄漏很常见,特别是前端去写后端程序,闭包运用不当,循环引用等都会导致内存泄漏。

  • 不要阻塞Event Loop的执行,特别是大循环或者IO同步操作

    for ( var i = 0; i < 10000000; i++ ) {
        var user       = {};
        user.name  = 'outmem';
        user.pass  = '123456';
        user.email = 'outmem[@outmem](/user/outmem).com';
    }

    上面的很长的循环会导致内存泄漏,因为它是一个同步执行的代码,将在进程中执行,V8在循环结束的时候,是没办法回收循环产生的内存的,这会导致内存一直增长。还有可能原因是,这个很长的执行,阻塞了node进入下一个Event loop, 导致队列中堆积了太多等待处理已经准备好的回调,进一步加剧内存的占用。那怎么解决呢?

    可以利用setTimeout将操作放在下一个loop中执行,减少长循环,同步IO对进程的阻.阻塞下一个loop 的执行,也会导致应用的性能下降

  • 模块的私有变量和方法都会常驻在内存中

var leakArray = [];   
exports.leak = function () {  
  leakArray.push("leak" + Math.random());  
};

在node中require一个模块的时候,最后都是形成一个单例,也就是只要调用该函数一下,函数内存就会增长,闭包不会被回收,第二是leak方法是一个私有方法,这个方法也会一直存在内存。加入每个请求都会调用一下这个方法,那么内存一会就炸了。

这样的场景其实很常见

// main.js
function Main() {
  this.greeting = 'hello world';
}
module.exports = Main;
var a = require('./main.js')();
var b = require('./main.js')();
a.greeting = 'hello a';
console.log(a.greeting); // hello a
console.log(b.greeting); // hello a

require得到是一个单例,在一个服务端中每一个请求执行的时候,操作的都是一个单例,这样每一次执行产生的变量或者属性都会一直挂在这个对象上,无法回收,占用大量内存。

其实上面可以按照下面的调用方式来调用,每次都产生一个实例,用完回收。

var a = new require('./main.js');
// TODO

有的时候很难避免一些可能产生内存泄漏的问题,可以利用vm每次调用都在一个沙箱环境下调用,用完回收调。

  • 最后就是避免循环引用了,这样也会导致无法回收

webpack详解

webpack是现代前端开发中最火的模块打包工具,只需要通过简单的配置,便可以完成模块的加载和打包。那它是怎么做到通过对一些插件的配置,便可以轻松实现对代码的构建呢?

webpack的配置

const path = require('path');
module.exports = {
  entry: "./app/entry", // string | object | array
  // Webpack打包的入口
  output: {  // 定义webpack如何输出的选项
    path: path.resolve(__dirname, "dist"), // string
    // 所有输出文件的目标路径
    filename: "[chunkhash].js", // string
    // 「入口(entry chunk)」文件命名模版
    publicPath: "/assets/", // string
    // 构建文件的输出目录
    /* 其它高级配置 */
  },
  module: {  // 模块相关配置
    rules: [ // 配置模块loaders,解析规则
      {
        test: /\.jsx?$/,  // RegExp | string
        include: [ // 和test一样,必须匹配选项
          path.resolve(__dirname, "app")
        ],
        exclude: [ // 必不匹配选项(优先级高于test和include)
          path.resolve(__dirname, "app/demo-files")
        ],
        loader: "babel-loader", // 模块上下文解析
        options: { // loader的可选项
          presets: ["es2015"]
        },
      },
  },
  resolve: { //  解析模块的可选项
    modules: [ // 模块的查找目录
      "node_modules",
      path.resolve(__dirname, "app")
    ],
    extensions: [".js", ".json", ".jsx", ".css"], // 用到的文件的扩展
    alias: { // 模块别名列表
      "module": "new-module"
	  },
  },
  devtool: "source-map", // enum
  // 为浏览器开发者工具添加元数据增强调试
  plugins: [ // 附加插件列表
    // ...
  ],
}

从上面我萌可以看到,webpack配置中需要理解几个核心的概念EntryOutputLoadersPluginsChunk

  • Entry:指定webpack开始构建的入口模块,从该模块开始构建并计算出直接或间接依赖的模块或者库
  • Output:告诉webpack如何命名输出的文件以及输出的目录
  • Loaders:由于webpack只能处理javascript,所以我萌需要对一些非js文件处理成webpack能够处理的模块,比如sass文件
  • Plugins:Loaders将各类型的文件处理成webpack能够处理的模块,plugins有着很强的能力。插件的范围包括,从打包优化和压缩,一直到重新定义环境中的变量。但也是最复杂的一个。比如对js文件进行压缩优化的UglifyJsPlugin插件
  • Chunk:coding split的产物,我萌可以对一些代码打包成一个单独的chunk,比如某些公共模块,去重,更好的利用缓存。或者按需加载某些功能模块,优化加载时间。在webpack3及以前我萌都利用CommonsChunkPlugin将一些公共代码分割成一个chunk,实现单独加载。在webpack4 中CommonsChunkPlugin被废弃,使用SplitChunksPlugin

webpack详解

读到这里,或许你对webpack有一个大概的了解,那webpack 是怎么运行的呢?我萌都知道,webpack是高度复杂抽象的插件集合,理解webpack的运行机制,对于我萌日常定位构建错误以及写一些插件处理构建任务有很大的帮助。

不得不说的tapable

webpack本质上是一种事件流的机制,它的工作流程就是将各个插件串联起来,而实现这一切的核心就是Tapable,webpack中最核心的负责编译的Compiler和负责创建bundles的Compilation都是Tapable的实例。在Tapable1.0之前,也就是webpack3及其以前使用的Tapable,提供了包括

  • plugin(name:string, handler:function)注册插件到Tapable对象中
  • apply(…pluginInstances: (AnyPlugin|function)[])调用插件的定义,将事件监听器注册到Tapable实例注册表中
  • applyPlugins*(name:string, …)多种策略细致地控制事件的触发,包括applyPluginsAsyncapplyPluginsParallel等方法实现对事件触发的控制,实现

(1)多个事件连续顺序执行
(2)并行执行
(3)异步执行
(4)一个接一个地执行插件,前面的输出是后一个插件的输入的瀑布流执行顺序
(5)在允许时停止执行插件,即某个插件返回了一个undefined的值,即退出执行
我们可以看到,Tapable就像nodejs中EventEmitter,提供对事件的注册on和触发emit,理解它很重要,看个栗子:比如我萌来写一个插件

function CustomPlugin() {}
CustomPlugin.prototype.apply = function(compiler) {
  compiler.plugin('emit', pluginFunction);
}

在webpack的生命周期中会适时的执行

this.apply*("emit",options)

当然上面提到的Tapable都是1.0版本之前的,如果想深入学习,可以查看Tapable 和 事件流
那1.0的Tapable又是什么样的呢?1.0版本发生了巨大的改变,不再是此前的通过plugin注册事件,通过applyPlugins*触发事件调用,那1.0的Tapable是什么呢?

暴露出很多的钩子,可以使用它们为插件创建钩子函数

const {
	SyncHook,
	SyncBailHook,
	SyncWaterfallHook,
	SyncLoopHook,
	AsyncParallelHook,
	AsyncParallelBailHook,
	AsyncSeriesHook,
	AsyncSeriesBailHook,
	AsyncSeriesWaterfallHook
 } = require("tapable");

我萌来看看 怎么使用。

class Order {
    constructor() {
        this.hooks = { //hooks
            goods: new SyncHook(['goodsId', 'number']),
            consumer: new AsyncParallelHook(['userId', 'orderId'])
        }
    }

    queryGoods(goodsId, number) {
        this.hooks.goods.call(goodsId, number);
    }

    consumerInfoPromise(userId, orderId) {
        this.hooks.consumer.promise(userId, orderId).then(() => {
            //TODO
        })
    }

    consumerInfoAsync(userId, orderId) {
        this.hooks.consumer.callAsync(userId, orderId, (err, data) => {
            //TODO
        })
    }
}

对于所有的hook的构造函数均接受一个可选的string类型的数组

const hook = new SyncHook(["arg1", "arg2", "arg3"]);
// 调用tap方法注册一个consument
order.hooks.goods.tap('QueryPlugin', (goodsId, number) => {
    return fetchGoods(goodsId, number);
})
// 再添加一个
order.hooks.goods.tap('LoggerPlugin', (goodsId, number) => {
    logger(goodsId, number);
})

// 调用
order.queryGoods('10000000', 1)

对于一个 SyncHook,我们通过tap来添加消费者,通过call来触发钩子的顺序执行。

对于一个非sync*类型的钩子,即async*类型的钩子,我萌还可以通过其它方式注册消费者和调用

// 注册一个sync 钩子
order.hooks.consumer.tap('LoggerPlugin', (userId, orderId) => {
   logger(userId, orderId);
})

order.hooks.consumer.tapAsync('LoginCheckPlugin', (userId, orderId, callback) => {
    LoginCheck(userId, callback);
})

order.hooks.consumer.tapPromise('PayPlugin', (userId, orderId) => {
    return Promise.resolve();
})

// 调用
// 返回Promise
order.consumerInfoPromise('user007', '1024');

//回调函数
order.consumerInfoAsync('user007', '1024')

通过上面的栗子,你可能已经大致了解了Tapable的用法,它的用法

  • 插件注册数量
  • 插件注册的类型(sync, async, promise)
  • 调用的方式(sync, async, promise)
  • 实例钩子的时候参数数量
  • 是否使用了interception

Tapable详解

Alt text
对于Sync*类型的钩子来说。

  • 注册在该钩子下面的插件的执行顺序都是顺序执行。
  • 只能使用tap注册,不能使用tapPromisetapAsync注册
// 所有的钩子都继承于Hook
class Sync* extends Hook { 
	tapAsync() { // Sync*类型的钩子不支持tapAsync
		throw new Error("tapAsync is not supported on a Sync*");
	}
	tapPromise() {// Sync*类型的钩子不支持tapPromise
		throw new Error("tapPromise is not supported on a Sync*");
	}
	compile(options) { // 编译代码来按照一定的策略执行Plugin
		factory.setup(this, options);
		return factory.create(options);
	}
}

对于Async*类型钩子

  • 支持taptapPromisetapAsync注册
class AsyncParallelHook extends Hook {
	constructor(args) {
		super(args);
		this.call = this._call = undefined;
	}

	compile(options) {
		factory.setup(this, options);
		return factory.create(options);
	}
}
class Hook {
	constructor(args) {
		if(!Array.isArray(args)) args = [];
		this._args = args; // 实例钩子的时候的string类型的数组
		this.taps = []; // 消费者
		this.interceptors = []; // interceptors
		this.call = this._call =  // 以sync类型方式来调用钩子
		this._createCompileDelegate("call", "sync");
		this.promise = 
		this._promise = // 以promise方式
		this._createCompileDelegate("promise", "promise");
		this.callAsync = 
		this._callAsync = // 以async类型方式来调用
		this._createCompileDelegate("callAsync", "async");
		this._x = undefined; // 
	}

	_createCall(type) {
		return this.compile({
			taps: this.taps,
			interceptors: this.interceptors,
			args: this._args,
			type: type
		});
	}

	_createCompileDelegate(name, type) {
		const lazyCompileHook = (...args) => {
			this[name] = this._createCall(type);
			return this[name](...args);
		};
		return lazyCompileHook;
	}
	// 调用tap 类型注册
	tap(options, fn) {
		// ...
		options = Object.assign({ type: "sync", fn: fn }, options);
		// ...
		this._insert(options);  // 添加到 this.taps中
	}
	// 注册 async类型的钩子
	tapAsync(options, fn) {
		// ...
		options = Object.assign({ type: "async", fn: fn }, options);
		// ...
		this._insert(options); // 添加到 this.taps中
	}
	注册 promise类型钩子
	tapPromise(options, fn) {
		// ...
		options = Object.assign({ type: "promise", fn: fn }, options);
		// ...
		this._insert(options); // 添加到 this.taps中
	}
	
}

每次都是调用taptapSynctapPromise注册不同类型的插件钩子,通过调用callcallAsyncpromise方式调用。其实调用的时候为了按照一定的执行策略执行,调用compile方法快速编译出一个方法来执行这些插件。

const factory = new Sync*CodeFactory();
class Sync* extends Hook { 
	// ...
	compile(options) { // 编译代码来按照一定的策略执行Plugin
		factory.setup(this, options);
		return factory.create(options);
	}
}

class Sync*CodeFactory extends HookCodeFactory {
	content({ onError, onResult, onDone, rethrowIfPossible }) {
		return this.callTapsSeries({
			onError: (i, err) => onError(err),
			onDone,
			rethrowIfPossible
		});
	}
}

compile中调用HookCodeFactory#create方法编译生成执行代码。

class HookCodeFactory {
	constructor(config) {
		this.config = config;
		this.options = undefined;
	}

	create(options) {
		this.init(options);
		switch(this.options.type) {
			case "sync":  // 编译生成sync, 结果直接返回
				return new Function(this.args(), 
				"\"use strict\";\n" + this.header() + this.content({
					// ...
					onResult: result => `return ${result};\n`,
					// ...
				}));
			case "async": // async类型, 异步执行,最后将调用插件执行结果来调用callback,
				return new Function(this.args({
					after: "_callback"
				}), "\"use strict\";\n" + this.header() + this.content({
					// ...
					onResult: result => `_callback(null, ${result});\n`,
					onDone: () => "_callback();\n"
				}));
			case "promise": // 返回promise类型,将结果放在resolve中
				// ...
				code += "return new Promise((_resolve, _reject) => {\n";
				code += "var _sync = true;\n";
				code += this.header();
				code += this.content({
					// ...
					onResult: result => `_resolve(${result});\n`,
					onDone: () => "_resolve();\n"
				});
			    // ...
				return new Function(this.args(), code);
		}
	}
	// callTap 就是执行一些插件,并将结果返回
	callTap(tapIndex, { onError, onResult, onDone, rethrowIfPossible }) {
		let code = "";
		let hasTapCached = false;
		// ...
		code += `var _fn${tapIndex} = ${this.getTapFn(tapIndex)};\n`;
		const tap = this.options.taps[tapIndex];
		switch(tap.type) {
			case "sync":
				// ...
				if(onResult) {
					code += `var _result${tapIndex} = _fn${tapIndex}(${this.args({
						before: tap.context ? "_context" : undefined
					})});\n`;
				} else {
					code += `_fn${tapIndex}(${this.args({
						before: tap.context ? "_context" : undefined
					})});\n`;
				}
				
				if(onResult) { // 结果透传
					code += onResult(`_result${tapIndex}`);
				}
				if(onDone) { // 通知插件执行完毕,可以执行下一个插件
					code += onDone();
				}
				break;
			case "async": //异步执行,插件运行完后再将结果通过执行callback透传
				let cbCode = "";
				if(onResult)
					cbCode += `(_err${tapIndex}, _result${tapIndex}) => {\n`;
				else
					cbCode += `_err${tapIndex} => {\n`;
				cbCode += `if(_err${tapIndex}) {\n`;
				cbCode += onError(`_err${tapIndex}`);
				cbCode += "} else {\n";
				if(onResult) {
					cbCode += onResult(`_result${tapIndex}`);
				}
				
				cbCode += "}\n";
				cbCode += "}";
				code += `_fn${tapIndex}(${this.args({
					before: tap.context ? "_context" : undefined,
					after: cbCode //cbCode将结果透传
				})});\n`;
				break;
			case "promise": // _fn${tapIndex} 就是第tapIndex 个插件,它必须是个Promise类型的插件
				code += `var _hasResult${tapIndex} = false;\n`;
				code += `_fn${tapIndex}(${this.args({
					before: tap.context ? "_context" : undefined
				})}).then(_result${tapIndex} => {\n`;
				code += `_hasResult${tapIndex} = true;\n`;
				if(onResult) {
					code += onResult(`_result${tapIndex}`);
				}
			// ...
				break;
		}
		return code;
	}
	// 按照插件的注册顺序,按照顺序递归调用执行插件
	callTapsSeries({ onError, onResult, onDone, rethrowIfPossible }) {
		// ...
		const firstAsync = this.options.taps.findIndex(t => t.type !== "sync");
		const next = i => {
			// ...
			const done = () => next(i + 1);
			// ...
			return this.callTap(i, {
				// ...
				onResult: onResult && ((result) => {
					return onResult(i, result, done, doneBreak);
				}),
				// ...
			});
		};
		return next(0);
	}

	callTapsLooping({ onError, onDone, rethrowIfPossible }) {
		
		const syncOnly = this.options.taps.every(t => t.type === "sync");
		let code = "";
		if(!syncOnly) {
			code += "var _looper = () => {\n";
			code += "var _loopAsync = false;\n";
		}
		code += "var _loop;\n";
		code += "do {\n";
		code += "_loop = false;\n";
		// ...
		code += this.callTapsSeries({
			// ...
			onResult: (i, result, next, doneBreak) => { // 一旦某个插件返回不为undefined,  即一只调用某个插件执行,如果为undefined,开始调用下一个
				let code = "";
				code += `if(${result} !== undefined) {\n`;
				code += "_loop = true;\n";
				if(!syncOnly)
					code += "if(_loopAsync) _looper();\n";
				code += doneBreak(true);
				code += `} else {\n`;
				code += next();
				code += `}\n`;
				return code;
			},
			// ...
		})
		code += "} while(_loop);\n";
		// ...
		return code;
	}
	// 并行调用插件执行
	callTapsParallel({ onError, onResult, onDone, rethrowIfPossible, onTap = (i, run) => run() }) {
		// ...
		// 遍历注册都所有插件,并调用
		for(let i = 0; i < this.options.taps.length; i++) {
			// ...
			code += "if(_counter <= 0) break;\n";
			code += onTap(i, () => this.callTap(i, {
				// ...
				onResult: onResult && ((result) => {
					let code = "";
					code += "if(_counter > 0) {\n";
					code += onResult(i, result, done, doneBreak);
					code += "}\n";
					return code;
				}),
				// ...
			}), done, doneBreak);
		}
		// ...
		return code;
	}
}

HookCodeFactory#create中调用到content方法,此方法将按照此钩子的执行策略,调用不同的方法来执行编译 生成最终的代码。

  • SyncHook中调用`callTapsSeries`编译生成最终执行插件的函数,`callTapsSeries`做的就是将插件列表中插件按照注册顺序遍历执行。
    
class SyncHookCodeFactory extends HookCodeFactory {
	content({ onError, onResult, onDone, rethrowIfPossible }) {
		return this.callTapsSeries({
			onError: (i, err) => onError(err),
			onDone,
			rethrowIfPossible
		});
	}
}
  • SyncBailHook中当一旦某个返回值结果不为undefined便结束执行列表中的插件
 class SyncBailHookCodeFactory extends HookCodeFactory {
	content({ onError, onResult, onDone, rethrowIfPossible }) {
		return this.callTapsSeries({
			// ...
			onResult: (i, result, next) => `if(${result} !== undefined) {\n${onResult(result)};\n} else {\n${next()}}\n`,
			// ...
		});
	}
}
  • SyncWaterfallHook中上一个插件执行结果当作下一个插件的入参
class SyncWaterfallHookCodeFactory extends HookCodeFactory {
	content({ onError, onResult, onDone, rethrowIfPossible }) {
		return this.callTapsSeries({
			// ...
			onResult: (i, result, next) => {
				let code = "";
				code += `if(${result} !== undefined) {\n`;
				code += `${this._args[0]} = ${result};\n`;
				code += `}\n`;
				code += next();
				return code;
			},
			onDone: () => onResult(this._args[0]),
		});
	}
}
  • AsyncParallelHook调用callTapsParallel并行执行插件
class AsyncParallelHookCodeFactory extends HookCodeFactory {
	content({ onError, onDone }) {
		return this.callTapsParallel({
			onError: (i, err, done, doneBreak) => onError(err) + doneBreak(true),
			onDone
		});
	}
}

webpack流程篇

本文关于webpack 的流程讲解是基于webpack4的。

webpack 入口文件

从webpack项目的package.json文件中我萌找到了入口执行函数,在函数中引入webpack,那么入口将会是lib/webpack.js,而如果在shell中执行,那么将会走到./bin/webpack.js,我萌就以lib/webpack.js为入口开始吧!

{
  "name": "webpack",
  "version": "4.1.1",
  ...
  "main": "lib/webpack.js",
  "web": "lib/webpack.web.js",
  "bin": "./bin/webpack.js",
  ...
  }

webpack入口

const webpack = (options, callback) => {
    // ...
    // 验证options正确性
    // 预处理options
    options = new WebpackOptionsDefaulter().process(options); // webpack4的默认配置
	compiler = new Compiler(options.context); // 实例Compiler
	// ...
    // 若options.watch === true && callback 则开启watch线程
	compiler.watch(watchOptions, callback);
	compiler.run(callback);
	return compiler;
};

webpack 的入口文件其实就实例了Compiler并调用了run方法开启了编译,webpack的编译都按照下面的钩子调用顺序执行。

  • before-run 清除缓存
  • run 注册缓存数据钩子
  • before-compile
  • compile 开始编译
  • make 从入口分析依赖以及间接依赖模块,创建模块对象
  • build-module 模块构建
  • seal 构建结果封装, 不可再更改
  • after-compile 完成构建,缓存数据
  • emit 输出到dist目录

编译&构建流程

webpack中负责构建和编译都是Compilation

class Compilation extends Tapable {
	constructor(compiler) {
		super();
		this.hooks = {
			// hooks
		};
		// ...
		this.compiler = compiler;
		// ...
		// template
		this.mainTemplate = new MainTemplate(this.outputOptions);
		this.chunkTemplate = new ChunkTemplate(this.outputOptions);
		this.hotUpdateChunkTemplate = new HotUpdateChunkTemplate(
			this.outputOptions
		);
		this.runtimeTemplate = new RuntimeTemplate(
			this.outputOptions,
			this.requestShortener
		);
		this.moduleTemplates = {
			javascript: new ModuleTemplate(this.runtimeTemplate),
			webassembly: new ModuleTemplate(this.runtimeTemplate)
		};

		// 构建生成的资源
		this.chunks = [];
		this.chunkGroups = [];
		this.modules = [];
		this.additionalChunkAssets = [];
		this.assets = {};
		this.children = [];
		// ...
	}
	// 
	buildModule(module, optional, origin, dependencies, thisCallback) {
		// ...
		// 调用module.build方法进行编译代码,build中 其实是利用acorn编译生成AST
		this.hooks.buildModule.call(module);
		module.build(/**param*/);
	}
	// 将模块添加到列表中,并编译模块
	_addModuleChain(context, dependency, onModule, callback) {
		    // ...
		    // moduleFactory.create创建模块,这里会先利用loader处理文件,然后生成模块对象
		    moduleFactory.create(
				{
					contextInfo: {
						issuer: "",
						compiler: this.compiler.name
					},
					context: context,
					dependencies: [dependency]
				},
				(err, module) => {
					const addModuleResult = this.addModule(module);
					module = addModuleResult.module;
					onModule(module);
					dependency.module = module;
					
					// ...
					// 调用buildModule编译模块
					this.buildModule(module, false, null, null, err => {});
				}
		});
	}
	// 添加入口模块,开始编译&构建
	addEntry(context, entry, name, callback) {
		// ...
		this._addModuleChain( // 调用_addModuleChain添加模块
			context,
			entry,
			module => {
				this.entries.push(module);
			},
			// ...
		);
	}

	
	seal(callback) {
		this.hooks.seal.call();

		// ...
		const chunk = this.addChunk(name);
		const entrypoint = new Entrypoint(name);
		entrypoint.setRuntimeChunk(chunk);
		entrypoint.addOrigin(null, name, preparedEntrypoint.request);
		this.namedChunkGroups.set(name, entrypoint);
		this.entrypoints.set(name, entrypoint);
		this.chunkGroups.push(entrypoint);

		GraphHelpers.connectChunkGroupAndChunk(entrypoint, chunk);
		GraphHelpers.connectChunkAndModule(chunk, module);

		chunk.entryModule = module;
		chunk.name = name;

		 // ...
		this.hooks.beforeHash.call();
		this.createHash();
		this.hooks.afterHash.call();
		this.hooks.beforeModuleAssets.call();
		this.createModuleAssets();
		if (this.hooks.shouldGenerateChunkAssets.call() !== false) {
			this.hooks.beforeChunkAssets.call();
			this.createChunkAssets();
		}
		// ...
	}


	createHash() {
		// ...
	}
	
	// 生成 assets 资源并 保存到 Compilation.assets 中 给webpack写插件的时候会用到
	createModuleAssets() {
		for (let i = 0; i < this.modules.length; i++) {
			const module = this.modules[i];
			if (module.buildInfo.assets) {
				for (const assetName of Object.keys(module.buildInfo.assets)) {
					const fileName = this.getPath(assetName);
					this.assets[fileName] = module.buildInfo.assets[assetName]; 
					this.hooks.moduleAsset.call(module, fileName);
				}
			}
		}
	}

	createChunkAssets() {
	 // ...
	}
}

在webpack make钩子中, tapAsync注册了一个DllEntryPlugin, 就是将入口模块通过调用compilation.addEntry方法将所有的入口模块添加到编译构建队列中,开启编译流程。

compiler.hooks.make.tapAsync("DllEntryPlugin", (compilation, callback) => {
		compilation.addEntry(
			this.context,
			new DllEntryDependency(
				this.entries.map((e, idx) => {
					const dep = new SingleEntryDependency(e);
					dep.loc = `${this.name}:${idx}`;
					return dep;
				}),
				this.name
			),
			// ...
		);
	});

随后在addEntry 中调用_addModuleChain开始编译。在_addModuleChain首先会生成模块,最后构建。

class NormalModuleFactory extends Tapable {
	// ...
	create(data, callback) {
		// ...
		this.hooks.beforeResolve.callAsync(
			{
				contextInfo,
				resolveOptions,
				context,
				request,
				dependencies
			},
			(err, result) => {
				if (err) return callback(err);

				// Ignored
				if (!result) return callback();
				// factory 钩子会触发 resolver 钩子执行,而resolver钩子中会利用acorn 处理js生成AST,再利用acorn处理前,会使用loader加载文件
				const factory = this.hooks.factory.call(null);

				factory(result, (err, module) => {
					if (err) return callback(err);

					if (module && this.cachePredicate(module)) {
						for (const d of dependencies) {
							d.__NormalModuleFactoryCache = module;
						}
					}

					callback(null, module);
				});
			}
		);
	}
}

在编译完成后,调用compilation.seal方法封闭,生成资源,这些资源保存在compilation.assets, compilation.chunk, 在给webpack写插件的时候会用到

class Compiler extends Tapable {
	constructor(context) {
		super();
		this.hooks = {
			beforeRun: new AsyncSeriesHook(["compilation"]),
			run: new AsyncSeriesHook(["compilation"]),
			emit: new AsyncSeriesHook(["compilation"]),
			afterEmit: new AsyncSeriesHook(["compilation"]),
			compilation: new SyncHook(["compilation", "params"]),
			beforeCompile: new AsyncSeriesHook(["params"]),
			compile: new SyncHook(["params"]),
			make: new AsyncParallelHook(["compilation"]),
			afterCompile: new AsyncSeriesHook(["compilation"]),
			// other hooks
		};
		// ...
	}

	run(callback) {
		const startTime = Date.now();

		const onCompiled = (err, compilation) => {
			// ...

			this.emitAssets(compilation, err => {
				if (err) return callback(err);

				if (compilation.hooks.needAdditionalPass.call()) {
					compilation.needAdditionalPass = true;

					const stats = new Stats(compilation);
					stats.startTime = startTime;
					stats.endTime = Date.now();
					this.hooks.done.callAsync(stats, err => {
						if (err) return callback(err);

						this.hooks.additionalPass.callAsync(err => {
							if (err) return callback(err);
							this.compile(onCompiled);
						});
					});
					return;
				}
				// ...
			});
		};

		this.hooks.beforeRun.callAsync(this, err => {
			if (err) return callback(err);
			this.hooks.run.callAsync(this, err => {
				if (err) return callback(err);

				this.readRecords(err => {
					if (err) return callback(err);

					this.compile(onCompiled);
				});
			});
		});
	}
	// 输出文件到构建目录
	emitAssets(compilation, callback) {
		// ...
		this.hooks.emit.callAsync(compilation, err => {
			if (err) return callback(err);
			outputPath = compilation.getPath(this.outputPath);
			this.outputFileSystem.mkdirp(outputPath, emitFiles);
		});
	}
	
	newCompilationParams() {
		const params = {
			normalModuleFactory: this.createNormalModuleFactory(),
			contextModuleFactory: this.createContextModuleFactory(),
			compilationDependencies: new Set()
		};
		return params;
	}

	compile(callback) {
		const params = this.newCompilationParams();
		this.hooks.beforeCompile.callAsync(params, err => {
			if (err) return callback(err);
			this.hooks.compile.call(params);
			const compilation = this.newCompilation(params);

			this.hooks.make.callAsync(compilation, err => {
				if (err) return callback(err);
				compilation.finish();
				// make 钩子执行后,调用seal生成资源
				compilation.seal(err => {
					if (err) return callback(err);
					this.hooks.afterCompile.callAsync(compilation, err => {
						if (err) return callback(err);
						// emit, 生成最终文件
						return callback(null, compilation);
					});
				});
			});
		});
	}
}

最后输出

seal执行后,便会调用emit钩子,根据webpack config文件的output配置的path属性,将文件输出到指定的path.

javaScript中的Unicode

javaScript中的Unicode

踩坑 在做某个业务的时候,后端童鞋给到的某个字段的值大概都长这样 javascript "\n#\u0008\u0005\u0012\u001f\u0012\u001d\u0005星球大战\u0006:原力觉醒\n\u000f\u0008\u0006\u0012\u000b\u0012\t张学友\n\n\u0008\u0003\u0012\u0006\u0012\u0004Dior\n\u0012\u0008\u0007\u0012\u000e\u0012\u000c英雄联盟" 对于这样的数据,我是拒绝的。对于这些 unicode,怎么解析呢?它到底是什么?

什么是编码

其实编码原理很简单,在计算中并非直接存储字符(英文、中文等),而是存储这些字符对应的一个数字,这些字符在网络传输的时候,也是传输字符对应的数字,编码就是将字符转化成相应的数字。

ASCII

大学C语言入门课程最先学习的知识,它用了一个字节的7位表示一个字符,比如字符A的ASCII码是65。ASCII码只用了7个bit编码,注定能编码的字符很少,只有128个。

Unicode编码

ASCII编码只能编码128个字符,而**汉子就有6000 +,这样显然不够的,然后**推出GBK 编码,用了两个字节来编码。**编码用了GBK,那其他国家呢?于是为了统一,推出了Unicode编码。在1991年推出了UCS统一编码,实际应用的是USC-2,用了2个字节来编码,能编码65536个字符。�JavsScript中的编码就是用的这个编码方式。

编码都是不涉及计算机存储,传输的。但是在遇到两个字节编码的字符的时候,有个系统是大端顺序读取,Windows就是这样,而Mac上是按照小端顺序读取。如果没有个转化格式,那么就乱了,此时UTF(Unicode Transformation Format,简称为UTF)就产生了。因此,UTF-16使用了**大端序(Big-Endian,简写为UTF-16 BE)、小端序(Little-Endian,简写为UTF-16 LE)以及BOM(byte order mark)**的概念。避免上述情况的出现。

JavaScript中的编码

JavaScript刚创建出来的时候,只有USC-2编码方式可选,所以就一只用了这个编码方式。上文也提到USC-2一开始使用了两个字节来编码,能够编码65536个字符,从0x0 - 0xFFFF,这个也被称为基本平面(BMP-—Basic Multilingual Plane)。但是后来发现这样的Unicode编码也是不够用,扩展了其他补充平面,从0x010000 - 0x10FFFF,共16个。对于补充平面的字符。对于UTF-16编码方式来说,在0x0 - 0xFFFF之间的编码方式直接使用了2个字节,而补充平面使用了4个字节来编码,其中前两个字节范围是0xD800 - 0xDBFF,后两个字节范围是0xDC00 - 0xDFFF。通过下面的方式完成映射:

H = Math.floor((c-0x10000) / 0x400)+0xD800 
L = (c  0x10000) % 0x400 + 0xDC00

USC-2编码的那些坑

var text = "𠮷"
console.log(text.length) // 2
console.log(/^.$/.test(text)) // false
console.log(text.split('').reverse()) // ["�", "�"]
console.log(String.fromCharCode(text.codePointAt(0))) // "��"

(1)判断长度失效

对于ES5来说,可以将此类转化以下

var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; // 匹配UTF-16的代理对
 
function countSymbols(string) {
	return string
		.replace(regexAstralSymbols, '_')
		.length;
}
countSymbols("𠮷"); // 1

对于ES6来说

function codePointLength(text) {
    var result = text.match(/[\s\S]/gu);
    return result ? result.length : 0;
}
codePointLength("𠮷") // 1

(2)正则表达式

console.log(/^.$/u.test(text)); // true

字符反转

function reverse(string) {
	return Array.from(string).reverse().join('');
}
reverse("𠮷") // "𠮷"

String.fromCharCode

var text = "𠮷";
console.log(text.codePointAt(0)) // 0x20bb7 (unicode)
var hightByte = text.charCodeAt(0) // 0xd842
var lowByte = text.charCode(1) // 0xdfb7
console.log(String.fromCharCode(hightByte, lowByte)) // "𠮷"
console.log(String.fromCodePoint(text.codePointAt(0))) // "𠮷"

写在最后

最后发现这样的编码无法编码成想要的字符,最后让后端童鞋编码成base64编码,然后解码。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.