文蔺 发布于 2016-11-14

[译] 手把手教你写一个 Javascript 框架:使用 ES6 Proxy 实现数据绑定

本文是“编写 JavaScript 框架”系列的第五章。在本章中,我将介绍如何使用 ES6 Proxy 实现简单、强大的数据绑定。本系列主要是如何开发一个开源的客户端框架,框架名为 NX。我将在本系列中分享框架编写过程中如何克服遇到的主要困难。对 NX 感兴趣的朋友可以点击 NX 项目主页查看。本系列章节如下:项目结构(Project structuring)执行调度(Execution timi...

阅读全文 »

文蔺 发布于 2016-11-14

笔记:IE 下透明度问题

IE8 下面遇到奇怪的问题。本来半透明的 png 图片,竟然一片黑。然而,我明明按照习惯使用了 opacity + filter 的方式。img { opacity: 1; filter: alpha(opacity=100);}结果发现,IE8 完全不是这么解析的。于是想起之前看过不少地方提到为 IE8 准备的 -ms-filter(主要是滤镜什么的)。然后产生了下面这个方法:img {...

阅读全文 »

文蔺 发布于 2016-11-13

快来上钩哈哈哈

最近遇到一点问题。可以注意到,我的博客是添加过版权声明的。其实吧,版权这些事情对我这种无名小卒来说,无阻挂齿。文章被人看到,已经很满足了,万一有人分享一下或者点个赞、打赏一下,那更是受宠若惊了。所以呢,我自己的文章,在我变成大神之前,你们这些网站,说真的,爱咋用咋用。可是呢,偏偏我又是个过了六级的,平常没事也翻译点文章,翻译文章这种事情,其实蛮有趣的,在翻译中学习,觉得比每天随便翻翻要好得多。有时...

阅读全文 »

文蔺 发布于 2016-11-12

[译] 理解 Node.js 事件循环

本文介绍了 Node.js 事件循环是如何工作,如何使用 Node.js 构建高速应用。文章还会涉及最常见的一些问题及其解决方案。(我们正在编写一系列文章,聚焦于那些大规模使用 Node.js 的公司、有一定 Node 基础的开发者们的需求。)Node.js at Scale 系列章节:使用 npmnpm 技巧与最佳实践语义化版本和模块发布理解 Module System、CommonJS 和 r...

阅读全文 »

文蔺 发布于 2016-11-09

算法学习:冒泡排序

从基础入手。前面学习了插入排序和选择排序。接下来看冒泡排序。依然假设手上有 N 张扑克牌,记作 cards。第一步,先比较第 1 张与第 2 张,如果第 1 张比第 2 张大,则将两者调换位置;第二步,重复上面的方法,比较第 2 张、第 3 张;……第 (n - 1) 步,比较第 (n - 1) 张、第 n 张,若第 (n - 1) 张比第 n 张大,则将两者调换位置。仔细想下,发现没有?这样 (...

阅读全文 »

文蔺 发布于 2016-11-06

算法学习:选择排序

所谓“选择排序”,基本思路就是不断从数组中选择出最小的数。还是以扑克牌为例。假设有 N 张扑克牌,记扑克牌集合为 cards,则我们的基本操作如下:首先,从手中拿出左侧第 0 张牌 cardA;第二步,将 cardA 向右依次与剩下的 (N - 1) 张牌进行对比,找出最小的那张牌所在的位置 minIndex;第三步,对比完成后,若 minIndex 不等于 1,则说明 cardA 不是最小的,...

阅读全文 »

文蔺 发布于 2016-11-05

[译] HTML 表单验证

我是 HTML 表单验证(HTML form validation) 的超级粉丝,因为它取代了我使用了近 20 年的 JavaScript 代码。不幸的是,Safari 并不支持这个特性(谈到 Web 时,先别跟我提 Apple 和他们的优先级)。不过,我确实很喜欢这个主意,将问题交给 HTML 自己解决。实际上,最近有个网站展示了许多类似的例子:You Might Not Need JavaSc...

阅读全文 »

文蔺 发布于 2016-11-02

算法学习:插入排序

缘起最近打算好好学习算法。因为专业的原因,对计算机原理、数据结构与算法这些知识,一开始可以说是一窍不通的。最开始在项目中接触算法,完全基于项目需要。当时负责一个酒店项目,数据接入来自公共部分。项目详情页拿到的数据,包括当前酒店所有套餐,最多的可能有几十个。需求仅仅要求显示三条,而且结果是根据不同内容(如状态、网络、热水、空调等等)有优先级的。当时被这套逻辑闹得很揪心。后来想想,放手干吧,多做几次遍...

阅读全文 »

文蔺 发布于 2016-10-29

使用 jQuery.ajax 上传带文件的表单

今天帮人看代码的时候,遇到一点小问题。使用 jQuery 上传带文件的表单时,会有些问题。首先,因为使用的是 FormData,所以必须在传入 $.ajax 的参数中配置 processData: false。否则将会抛出 Illegal invocation 的异常,因为 jQuery 默认是会对传入的 data 字段的数据进行处理的。官方文档是这么解释的:其次,注意请求的 Content-Ty...

阅读全文 »

文蔺 发布于 2016-10-28

JavaScript Weekly 307 阅读笔记

js 编写简单的 compilerHow to Make a (Very) Simple Compiler with JS这个小小的 compiler 还挺简单,将简单的画图指令转换为 SVG 标记。文章作者写了一个 demo,用来演示转换的整个过程,感觉不错,建议看看。之前也有人讲过一些,比如 github 上的 the-super-tiny-compiler(有中文版),貌似还在 2016 年...

阅读全文 »