何泽弘

何泽弘的博客

这是一个中二半吊子码农分享学习经验和生活的网站...

使用Cookie兼容LocalStorage


Storage 对象最近才加入标准,因此可能并不被所有浏览器支持。

你可以通过在你的scripts代码前加入以下两段代码中某一段来规避在不能原生支持的执行环境使用localStorage对象的问题。

注意:该算法借助于cookies,数据量的最大值是通过cookies来严格限制的。

实现javascript中的队列结构


核心方法:

var Queue = (function () {
    function Queue (worker, concurrency) {
        this.tasks = [];
        this.worker = typeof worker === 'function' ? worker : null;
        this.concurrencyMax = typeof concurrency === 'number' && concurrency > 0 ? concurrency : 1;
        this.concurrencyCut = 0;
        this.drain = null;
    }
    Queue.prototype._start = function () {
        if (this.tasks.length === 0 || this.concurrencyCut >= this.concurrencyMax) {
            return ;
        }
        var taskData = this.tasks.shift();
        this.concurrencyCut += 1;
        this.worker && this.worker(taskData.task, this._next.bind({ taskData: taskData, self: this }));
    };
    Queue.prototype._next = function () {
        var self = this.self;
        var taskData = this.taskData;
        taskData.callback && taskData.callback.apply(this, arguments);
        self.concurrencyCut -= 1;
        if ( self.tasks.length > 0 ) { return self._start(); }
        if ( self.concurrencyCut === 0 ) { return self.drain && self.drain(); }
    };
    Queue.prototype.push = function (task, callback) {
        this.tasks.push({ task: task, callback: callback });
        if ( this.concurrencyCut < this.concurrencyMax ) { return this._start(); }
    };
    return Queue;
})();
我的博客终于诞生了

我的博客终于诞生了


今天,2017年4月22日,在互联网这个的地方,建立了属于我的小空间。可能不会经常更新(其实都不知道自己以后会不会记得来这里逛一逛),但我会尽量留下一些我生活上,学习上让我我值得学习、回顾、感动的信息。。那么,就简单的随便纪念一下博客的诞生吧。