仅需四步,即可体验 Service Worker 带来的快感

随着 17 年年底苹果宣布 Safari 支持 Service Worker,越来越多的网站势必会在生产环境中引入它。不过由于存在接入的成本,大家无法立马体验到 Service Worker 应用在自己网站上所带来的优点。为了能快速体验到 Service Worker 带来的丝滑快感,趁着春节后上班第一周的空闲时间,我开发了一款 whistle.service-worker 的小工具,只需四步就可以为想要使用 Service Worker 的网站测试效果。

对 HTTPS 的中间人攻击

本文翻译自 2009 年 2月 03 日发表于 IEEE 的文章 《Man-in-the-middle attack to the HTTPS protocol》,原文链接为 http://ieeexplore.ieee.org/document/4768661/。

对于网上银行、电子商业和电子采购等需要处理敏感信息的交易,基于 Web 的应用通过 HTTPS 协议来保证其中的隐私和安全。用户相信这种协议可以避免他们个人信息、金融信息或私密信息等被他人截获。

在 1994 年,网景公司为了敏感信息的通讯引入了安全套接层协议( Secure Socket Layer,即 SSL)。随后在 1999 年,互联网工程任务小组(IETF)采纳了它,将其完善为安全传输层协议(Transport Layer Security,即 TLS),并通过它将 HTTP 协议加密为 HTTPS 协议。一个 HTTPS 的链接表明浏览器会在 443 端口通过 HTTP 协议下载页面,并在 HTTP 和 TCP 协议之间引入附加的 TLS 加密/认证层。因此,大部分人认为基于 HTTPS 的信息交换是安全的。在这篇文章中,我们将指出这种想法的危险之处 — 攻击者可以成功地拦截信息从而使信息安全失效

怎样让开源项目看起来“高大上”

为了避免重复造轮子 ,我们往往会借助开源的项目实现一些功能。很多时候,选择使用哪一个开源项目就像选择男、女朋友一样,固然内在很重要,但是眼缘也很关键,只有看对了眼,才会进一步地了解。作为开源项目的开发者,当然是希望自己写出来的成果能被更多的人尝试使用,所以这篇文章主要谈一谈怎样让开源项目看起来“高大上”,从而让别人有使用的冲动。

展望 2018

又一年溜走了,算一算离开学校在腾讯实习已经 6 个月了,看着 2017 年写的两篇展望《展望2017》《不再是孩子》,感觉像是发生在很久以前的事情了。这一年最大的感受就是学校生活和工作生活的差别还是挺大的,不过幸运的是自己渐渐地找到了工作的节奏,希望在 2018 年能在腾讯获得更好的发展。

给 Number 打 Call

最近“打 call”这个词突然流行起来,我想到 call 在 JavaScript 中可是个重要的方法,那么能不能用 JavaScript 也来玩一把打 call 呢?于是我在 Number 上实验了下,写出来的代码让我自己都一脸懵逼了,大家能猜到下面这段代码的输出结果吗?

1
2
3
4
5
Number.call(Number, 1, 2, 3);
Number.call.call(Number, 1, 2, 3);
Number.call.call.call(Number, 1, 2, 3);
Number.call === Number.call.call;
Number.call === Number.call.call.call;

transform 的副作用

transform 想必大家都很熟悉,可以通过其转换(translate)、旋转(rotate)、缩放(scale)、倾斜(skew)等属性来对元素进行变换,不过这篇文章想探讨的不是这些内容,而是 transform 对元素布局、页面渲染方面的影响。例如,你知道它会影响 fixed 元素的位置吗?你有想过它会改变元素的层叠顺序吗?

word-break 和 word-wrap 的区别

本文主要要介绍的是 CSS 中 word-break: break-allword-wrap: break-word 的区别,虽然这两个属性都有使用过,但都是属于使用时查一查文档随手就用,用完了也不会深入去探究的范畴,希望借着这篇文章来深入的探究一下这两者的区别。

ts-check 立即上手,JSDoc 添加类型

由于 JavsScript 是弱类型,所以在大型项目中使用时显得能力略有不足。从七月份在腾讯实习到现在,接触到了不少项目的代码,平均算来每天都有 70% 的时间用于阅读、理解他人的代码。每次阅读他人代码的时候,我心中都会冒出来两个强烈的愿望:要是 JavaScript是强类型的多好!要是文档能再详细一点就好了!多亏了 TypeScript 和 JSDoc,这两个愿望都有变成现实的可能。