文蔺 发布于 2016-08-30

[译] 渐进增强的键盘导航

创建界面时很重要的一点是,要考虑到那些只依赖键盘来使用产品的用户。这对可访问性来说是基本要求,在多数情况下,通过键盘操作访问也并非难事。这意味着首先,也是最重要的,是使用键盘可访问元素进行交互。如果希望用户跳转到其他地方,使用带有有效的 href 属性的锚点连接如果希望用户执行你自己的代码,并在当前文档中停留,使用按钮通过流动 tabIndex 技术几乎可以使所有内容都能通过键盘访问,不过,既然已...

阅读全文 »

文蔺 发布于 2016-08-27

[译] Fetch 请求的本地缓存

本文展示了如何使用实现 fetch 请求的本地缓存,遇到重复请求时,将会从 sessionStorage 中读取数据。这样做的好处是,无需为每个需要缓存的资源编写自定义代码。如果你想在 JavaScript 盛会中露露脸,秀秀如何玩转 Promise、最前沿的 API 和 localStorage,那就接着往下看吧。Fetch API此时此刻,你对 fetch 可能已经很熟悉了。它是浏览器提供的用...

阅读全文 »

文蔺 发布于 2016-08-18

[译] 渐进式 Web App 的离线存储

2016 很可能成为网络弹性(network resilience)元年。网络连接很可能不靠谱(flakey),或者根本就连不上,这也是为什么在 渐进式 Web App(译者注:Progressive Web App,以下简称 PWA) 中,支持离线和性能可靠都很重要。本文总结了关于 PWA 离线数据存储的一些创意。想想那些提供有意义的离线体验所需要的 JSON 数据、图片以及其他的静态数据。离线...

阅读全文 »

文蔺 发布于 2016-08-16

[译] WebAssembly 初尝

头一次听说 WebAssembly 的时候就觉得很酷,然后就超兴奋地开始尝试。但从一开始尝试的过程就不顺利,越来越让人灰心。本文的目的就是解决问题,让你免受困扰。读者须知本文写作于 2016 年 6 月 24 日。WebAssembly 是一项很新的、不稳定的技术;随着其标准化过程发展,本文中的任何内容都可能是错误的。不过先不管了....WebAssembly 是什么好吧,官网是这么描述的:Web...

阅读全文 »

文蔺 发布于 2016-08-15

[译] 自动化、跨浏览器的 JavaScript 单元测试

大家都知道在不同浏览器上测试代码有多重要。多数时候我会觉得,开发者社区中的朋友们这一点做得非常棒 —— 至少是在初次发布项目的时候。测试做得不好的是在每次修改代码的时候。我个人也为此内疚。“自动化、跨浏览器的 JavaScript 单元测试”,这在我的 todo list 中已陈列数年,可每次坐下来打算认真弄明白时,又放弃了。我知道,有一部分是惰性所致,不过此话题的优质信息的惊人匮乏也难辞其咎。有...

阅读全文 »

文蔺 发布于 2016-08-10

[译] JavaScript 与函数式编程

译者注:推荐一篇译文,《函数式编程术语解析》。本文是我在 2016 年 7 月 29 号听 Kyle Simpson 精彩的课程《Functional-Light JavaScript》时所做的笔记(外加个人的深入研究)(幻灯片在这)。长久以来,面向对象在 JavaScript 编程范式中占据着主导地位。不过,最近人们对函数式编程的兴趣正在增长。函数式编程是一种编程风格,它强调将程序状态变化(即副...

阅读全文 »

文蔺 发布于 2016-07-27

[译] eBay:style & speed

今年 eBay 的顶级举措之一是为我们的用户提供一个更好的浏览体验。在最近的一次采访中,Devin Wenig 对关于此事的重要性已经有了很棒的评论。我们的想法是利用结构化的数据和机器学习,让各种价值观不同的用户购物,这些用户中可能一些人偏好存钱,而另外一些人可能会关注像畅销品这样一些东西。开始设计体验的时候,我们最先聚焦于移动 Web。和许多其他组织一样,移动 Web 已成为发展成长最高的产业点...

阅读全文 »

文蔺 发布于 2016-07-25

[译] Service Worker 生命周期

如果使用过 Service Worker,之前你可能遇到过这样的问题,原来的 Service Worker 还在起作用,即使文件本身已经更新过。其中的原因在于 Service Worker 生命周期中的一些微妙之处;它可能会被安装,而且是有效的,但实际上却没有被 document 纳入控制。Service Worker 可能拥有以下六种状态的一种:解析成功(parsed),正在安装(install...

阅读全文 »

文蔺 发布于 2016-07-22

[译] 从发展历史理解 ES6 Module

在很长一段时间内, ES6 带来了 JavaScript 最大的变化,包括管理大型、复杂代码库的一些新特性。这些特性,主要是 import 和 export 关键词,共同被称为 modules。如果你现在还是 JavaScript 新手,特别是从其他已有内建模块(各种名字如 module、package、unit)支持的语言转过来的,ES6 的模块设计可能看起来挺奇怪的。很多从 JavaScrip...

阅读全文 »

文蔺 发布于 2016-07-20

[译] 关于转译器 JavaScript 程序员需要知道的事

想要在与 ECMAScript 保持一致的同时也不抛弃那些没有最新 JavaScript 特性的浏览器吗?或者在成为标砖之前试验那些即将到来的特性,以告诉 ECMAScript 哪些对你有用,哪些没什么用?再或者就是想利用那些大型项目中提高 JavaScript 效率的工具?转译器(transpiler)可以帮你完成所有这些。转译器是将一种语言的代码转换为另一种语言代码的工具,它们过去曾被更多地用...

阅读全文 »