w3cTrain

Keep Moving

心有林夕
纠正之前的一个错误的观念。前几天觉得自己在细碎知识上花了太多篇幅,有点浪费时间。然而,吾生也有涯,而知也無涯,学习是一个积跬步致千里的过程,不可能一蹴而就。所以不应该觉得到了某个阶段就不去积累小知识点。把基础,简单的,打扎实先。

Read More...

最近身边有位朋友告诉我,他已经辞职两个多月,天天待在出租屋里面,哪也不去。篮球不想打,工作不想找,一日两餐外卖。
Read More...

好久没有更新博客了,自从正式上班以来,貌似都没什么时间写博客。
Read More...

在前端这个行业里面,浏览器担任着及其重要的角色。今天我们可以选择的浏览器有很多,Chrome,Firefox,IE,Safari… 为了能获得更佳的开发体验,大家更多地选择 Chrome。今天介绍下我平时安装的那些 Chrome Extensions。
Chrome Extensions
Read More...

在开始和 Service Workers 打招呼之前,我们先来对比一下 Native App 和 Web 在性能和可及性之间的差异。

差异
为了结合两者的优点,各大厂商推出了各自的解决方案,Hibrid、Weex、Reative Native 等等。
Google 团队推出了 Progressive Web Apps。

Progressive Web Apps 能做什么

  • Notification
  • Add To Home Screen
  • Instant Loading
  • Fast
  • Responsive
  • Secure

Anyways,这是理想状态,在中国难免会遇上障碍,我们还是必须走中国特色 ** 道路。

  • Notification 依赖于 Google Push API,除非你能让用户都翻过 GFW。
  • 国内 Android 自定义程度极高,大部分厂商自定义桌面,自带浏览器也没有 Add To Home Screen 选项。

上面这两个功能都没法用在正式环境上,不过还好对注重用户体验的我们来说,它们并非必要。接下来看 PWA 的核心,也是这篇文章的重点,Service Worker。

初识 Service Worker

  • Service Worker 是运行在浏览器后台的脚本,运行环境与普通的脚本不同,它不能直接参与页面交互。
  • Service Worker 类似于网络代理,可以用来请求转发,伪造响应。
  • Service Worker 可以用来拦截网络请求,处理推送消息以及执行其他任务。
  • Service worker 权限很高,所以需要运行在 HTTPS 上,防止被人从中攻击,Github Page 支持 HTTPS,是块极好的试验田。

网络代理

Service Worker 生命周期

生命周期

Service Worker 基于事件监听机制,在没有接受到事件时,它几乎不占内存。Service Worker 可接收的事件主要有下面几个:

install 事件通常在 ServiceWorker 首次运行的时候被激活,通常在这个时间点缓存资源,以便于用户在下次访问时能提速。
activate 事件在一次成功的 install 之后被触发。
fetch 事件能截取当前 ServiceWorker 作用域下发出的请求,这时候我们可以拦截请求并作出响应。
message 事件在接收到消息的时候执行。

Read More...

相信大家都有过类似经历,在看一些博客文章的时候,突然页面内容跳了一下,当时就想骂娘了。如果文章前半部分没有激起你阅读的欲望还好说,直接关闭页面,但是如果你还想继续往下读,就只能苦逼地人肉定位。
🙄🙄🙄
Read More...

我学习前端『新』技术也有段时间了,最近接手的项目由于种种原因(历史,求稳,考虑成本等等),使用的技术都比较保守。在熟悉了『新』技术,重新回到最初的起点,回头看看它们带来些什么。

这篇文章以Sass为例,记录一些自己的思考。

Read More...

一像一世界,一素一菩提。

为了赶进度,我们常常会偷懒,目测一下大概尺寸直接开始写样式。
忙活了半天,终于呈现到’像素眼’设计师面前,大写的尴尬!
但是有时候你用心去量尺寸,也可能会出差池。

比如1px的问题。
问题大概是这样的,设计师给的设计稿是2倍图,或3倍图,但是里面的某条线或者边框却是1px的???
exo-me
Read More...

12310