JavaScript 定时器与执行机制解析
In 未分类 on 2016年05月15日 by view: 22,672
16

Timer

从 JS 执行机制说起

浏览器(或者说 JS 引擎)执行 JS 的机制是基于事件循环。

由于 JS 是单线程,所以同一时间只能执行一个任务,其他任务就得排队,后续任务必须等到前一个任务结束才能开始执行。

为了避免因为某些长时间任务造成的无意义等待,JS 引入了异步的概念,用另一个线程来管理异步任务。

同步任务直接在主线程队列中顺序执行,而异步任务会进入另一个任务队列,不会阻塞主线程。等到主线程队列空了(执行完了)的时候,就会去异步队列查询是否有可执行的异步任务了(异步任务通常进入异步队列之后还要等一些条件才能执行,如 ajax 请求、文件读写),如果某个异步任务可以执行了便加入主线程队列,以此循环。

TAT.dnt 移动 web 开发调试工具 AlloyLever 介绍
In 未分类 on 2016年05月10日 by view: 9,398
8

简介

web 调试有几个非常频繁的刚需:看 log、看 error、看 AJAX 发包与回包。其他的如 timeline 和 cookie 以及 localstorage 就不是那么频繁,但是 AlloyLever 都支持。如你所见:

 

TAT.rocket 总结伪类与伪元素
In 未分类 on 2016年05月09日 by view: 38,568
14

熟悉前端的人都会听过 css 的伪类与伪元素,然而大多数的人都会将这两者混淆。本文从解析伪类与伪元素的含义出发,区分这两者的区别,并且列出大部分伪类与伪元素的具体用法,即使你有用过伪类与伪元素,但里面总有一两个你没见过的吧。

1. 伪类与伪元素

先说一说为什么 css 要引入伪元素和伪类,以下是 css2.1 Selectors 章节中对伪类与伪元素的描述

CSS introduces the concepts of pseudo-elements and pseudo-classes  to permit formatting based on information that lies outside the document tree.

 

TAT.dnt zepto/jQuery、AngularJS、React、Nuclear 的演化
In 未分类 on 2016年04月27日 by view: 8,996
23

写在前面

因为 zepto、jQuery2.x.x 和 Nuclear 都是为现代浏览器而出现,不兼容 IE8,适合现代浏览器的 web 开发或者移动 web/hybrid 开发。每个框架类库被大量用户大规模使用都说明其戳中了开发者的刚需。本文将对比 zepto/jQuery 到 Nuclear 的设计和演化的过程。

无框架时代

互联网的春风刚刮来的时候,人们当时利用三剑客制作网页。

【译】2016React 大会之 React 展望
In 未分类 on 2016年04月20日 by view: 7,662
4

译者按:2016 年 React.js 大会在今年 1 月份举行,2 月底放出了视频,本文翻译的是其中一个演讲 What Lies Ahead(自备梯子), 介绍了 React 目前的进展,以及未来的研发方向。

Hi, 我是 Ben,在 React 团队工作,今天我要介绍的是我们对 React 未来的构想。

当我们在考虑 “React 还有哪些改进空间?”“还有什么问题可以用 React 解决?” 的时候,我们都在尝试回答一个问题——React 如何帮助(开发者)开发极致的应用?这个问题有两个部分要考量。首先,一个极致的应用明显应该有良好的用户体验。同时,我们认为开发体验的地位也是举足轻重。所以今天我们要讨论这两个话题。

TAT.李强 Node 嵌入式数据库——NeDB
In 未分类 on 2016年03月30日 by view: 46,258
7

一、简介

NeDB 是使用 Nodejs 实现的一个 NoSQL 嵌入式数据库操作模块,可以充当内存数据库,也可以用来实现本地存储,甚至可以在浏览器中使用。查询方式比较灵活,支持使用正则、比较运算符、逻辑运算符、索引以及 JSON 深度查询等。

NeDB 嵌入到了应用程序进程中,消除了与客户机服务器配置相关的开销,在运行时,也只需要较少的内存开销,使用精简代码编写,速度更快。其 API 是 MongoDB 的一个子集,可以通过这些接口轻松管理应用程序数据,而不依靠原始的文档文件。

具有简单、轻量、速度快等特点,由于嵌入式数据库存储总数据量最好要控制在 1GB 以内,所以适合在不需要大量数据处理的应用系统中使用(比如使用 nw.js 等实现的桌面应用程序、并发量不大的系统等)。

TAT.tennylv 移动 web 适配利器-rem
In 未分类 on 2016年03月27日 by view: 91,804
35

前言

提到 rem,大家首先会想到的是 em,px,pt 这类的词语,大多数人眼中这些单位是用于设置字体的大小的,没错这的确是用来设置字体大小的,但是对于 rem 来说它可以用来做移动端的响应式适配哦。

 

兼容性

TAT.dorsywang 从 Promise 的 Then 说起
In 未分类 on 2016年03月25日 by view: 6,570
4

Promise 让代码变得更人性化

曾经我一直在思考,为什么代码会比较难读。后来发现,我们平时要阅读的所有媒体:报纸、书、新闻,我们在阅读的时候,都是从上到下一直读下去的,然而,我们的在读代码的时候,经常要跳着去读,这种阅读方式其实是反人类的,如果我们能在读代码的时候,也可以从上往下一直读下去,那么,代码就会变得可读性提高很多。

探索 react-redux 的小秘密
In 未分类 on 2016年03月25日 by view: 11,491
7

一、前言

    自从 React 火起来后,笔者对这种组件化的开发模式实在太喜欢,瞬间成为了它的脑残粉。后面也用 React 做了一些项目,比如 http://buluo.qq.com/p, 采用的技术架构是 Reactjs + Reflux + webpack。不得不说前端的变化是日新月异,Redux 出来后,github star 嗖嗖的,用 Reflux 就显得很 low B 了,迎头赶上吧。 

这是 Redux 的架构图。
此处输入图片的描述

Redux 起源于 React,但它们并没有关系。它是独立的,支持 React、Angular、Ember 或者更多其他的框架。网上有非常多的文章去讨论 Redux,本文就不去讨论它的原理及使用方法了,不了解的同学请移步 Redux 中文文档

 

既然 Redux 与 React 没有什么关联,那要怎样搭配它们使用呢? 
官方提供了一个 react-redux 绑定库,来配合 React,它是怎么实现的呢? 
OK,本文就是来讲 react-redux 的。

 

TAT.Johnny 不能说的秘密——前端也能玩的图片隐写术
In 未分类 on 2016年03月24日 by view: 59,583
29

上个月在千里码刷题的时候,碰到了比较有意思的一道题—— 隐写术。既然感觉有意思,又很久没有玩过 canvas,所以今天结合这两块内容带大家探索一下。

隐写术算是一种加密技术,权威的 wiki 说法是“ 隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容。” 这看似高大上的定义,并不是近代新诞生的技术,早在 13 世纪末德国人 Trithemius 就写出了《隐写术》的著作,学过密码学的同学可能知道。好了,说了这么多,隐写术到底是什么技术,让我们看一个例子。

下面是一张看似普通的图片,但其中却藏有另一个肉眼无法识别的图像哦。