文蔺 发布于 2016-06-27 [译] 无限滚动加载最佳实践 无限滚动(Infinite scrolling),有时候被称为无尽滚动(endless scrolling),这种技术允许用户在大量内容上滚动,眼中看不到结束的地方。这种技术很简单,就是页面往下滚动的时候保持刷新。这项技术使用户在没有打断和额外交互的情况下滚动列表 —— 随着用户滚动,一条条的内容就出现了。Facebook 的新闻推送页,Google 的图片搜索,Twitter 的时间线,这些页面... 阅读全文 »
文蔺 发布于 2016-06-27 [译] 小两百行 JavaScript 打造 lambda 演算解释器 最近,我发了一条推特,我喜欢上 lambda 演算了,它简单、强大。我当然听说过 lambda 演算,但直到我读了这本书 《类型和编程语言》(Types and Programming Languages) 我才体会到其中美妙。已经有许多编译器/解析器/解释器(compiler / parser / interpreter)的教程,但大多数不会引导你完整实现一种语言,因为实现完全的语言语义,通常需... 阅读全文 »
文蔺 发布于 2016-06-26 关于JavaScript 函数传参 周五晚上下班回家的路上,突然想到了 CommonJS 规范、Node.js 模块化等等各种东西,然后就想到了熟悉的 module.exports。大约很久之前看 seajs 的文档,文档强调,exports = {/**/} 这种写法是错误的!当时还是小白中的小白,只能一脸懵逼,为嘛不能啊?完全无法理解。请看截图:有没有看到最后的提示?可惜那时候的小白文蔺完全不知道这是什么鬼——更可能的是那会儿就... 阅读全文 »
文蔺 发布于 2016-06-25 [译] 客户端存储 介绍本文是关于客户端存储(client-side storage)的。这是一个通用术语,包含几个独立但相关的 API: Web Storage、Web SQL Database、Indexed Database 和 File Access。每种技术都提供了在用户硬盘上 —— 而非通常存储数据的服务器 —— 存储数据的独特方式。这么做主要基于以下两点理由:(a)使 web app 离线可用; (b)... 阅读全文 »
文蔺 发布于 2016-06-25 [译] Node.js 中的队列 这是深入探索 Node.js 中使用工作队列(work queues)管理异步工作流的系列文章的第一篇,来自the Node Patterns series。开始享受吧!很常见的是,在应用程序流中,应用有着可以异步处理的工作负载。一个常见的例子是发送邮件。比方说,新用户注册时,可能需要给 Ta 发送一封确认邮件来确认用户刚刚输入的 email 地址是 Ta 自己的。这包括从模板中生成消息,向电子邮... 阅读全文 »
文蔺 发布于 2016-06-24 [译] No WebSockets Over HTTP2 译者注: 《深入浅出 Node.js》第七章讲述 WebSocket 服务的构建中,对本文中反复提到的 Upgrade 有比较详细的说明。NO WEBSOCKETS OVER HTTP/2.我这样说的意思是,在 HTTP/2 协议里,无法像在 HTTP/1.1 中把连接(connection)协商或提升为 WebSocket那样,如RFC 6455 所描述的 —— 这个规范(RFC 6455)详述... 阅读全文 »
文蔺 发布于 2016-04-22 react-native 开发 App 手记 做了一个月的 RN。遇到一些问题,陆续记录下来。一些关于组件上的问题不细说了。Android 下的键盘事件监听一直想找安卓下面的键盘事件,可是官方文档(0.22)压根就没提这档子事啊。唯一稍微有点眉目的,就是关于原生模块这里。后来看到了 react-native-keyboard-spacer 这个组件的写法,很傻很天真的以为是需要使用什么 java 或 OC 的支持。于是我决定去看看源码,找到... 阅读全文 »
文蔺 发布于 2016-03-12 近来在Firefox上遇到的一些坑 因为工作一年多以来,做的工作基本都是和 webkit 系列打交道。先是做m站,后来做了两个 app 内嵌的 hybrid 项目,从来只考虑 webkit 前缀和相关的伪类。最近四个多月开始做内部的管理系统,写写样式,偶尔做个 calendar、tree 之类的组件,所有的基本只考虑新版 Chrome。从来没考虑别的问题。最近在帮人解决 firefox 下的一些兼容问题。QA 妹纸提交了一堆 “bu... 阅读全文 »
文蔺 发布于 2016-03-11 Chrome和Firefox下的网页截图 最近在实现一个功能,需求如下:前提:当前页面无弹窗页面任意位置执行粘贴读取剪切板中的截屏数据上传截图首先还是从网上找相关的例子。找到了SF上的专栏文章《js获取剪切板内容,js控制图片粘贴》。于是基于这个,做出了第一版的截图上传功能。由于项目使用的是angularjs,事先已经封装好一套上传图片的办法,只需要调用 $scope.image = blob,自动就会发送、上传该文件。我是半路介入项目的... 阅读全文 »