记突发事件导致的服务降级

昨天早上我整理好手头的 task,刚安排好当天要做的事情,做了一点点,就听到办公室有人在说正式版服务挂了,用七牛 CDN 的所有项目都打不开,因为七牛 CDN 挂了,我想到我们还有 pc 端,静态资源不走 CDN,就跟同事说让外面用着 PC 版先,功能都一样的,同事说视频,文档这些动态调用的静态资源都放在七牛,上传图片的路径也是七牛,还是会有部分功能用不了,不过我想我们也没办法,感觉这是服务端的事情,我这边应该也不用做什么措施,继续淡定的敲我的代码。

阅读全文

关于做技术这件事

想做技术的契机来源于大学计算机老师的影响,大一教 c 语言的老师让我知道了编程竟然这么有趣,可以做这么多好玩的东西。大二时听到老师很有兴致的讲到他大学的时候通过局域网去恶作剧,觉得懂技术竟然可以这么好玩,真有意思。后来的数据库课程的老师布置的期末大作业,开发一个动态网站,我第一次知道了了网站开发竟然这么简单,几行代码就可以出来一个让全世界人们都能看到的页面。就是这么一个个老师的影响,我有了编程这个爱好,也坚持这个爱好并找到了相关工作。

阅读全文

Vue 数据驱动视图更新实现

写了几年的 Vue 了,对其中的内部实现还是一知半解,日常开发中,基本问题 debug + 官方文档基本可以解决了,很少有触及源码的需求。最近发现看看源码也有好处,用的时候可能会多了一些自己的理解,知道了为什么,使用起来也更加得心应手。下面来讲讲 Vue 数据驱动视图是怎么做到的。

在讲 Vue 如何做到数据驱动视图之前,我们先来看看用纯 js 我们是如何改变页面数据的

阅读全文

JavaScript 事件循环

JavaScript 事件循环理解

阅读全文

JavaScript New 关键字的实现原理

在实例化一个构造函数的时候,我们通常会用 new 关键字,这个 new 关键字是如何做到让实例可以调用到构造函数上的方法和属性的呢?

我们先来看看实例有啥特性,首先每个实例上都有一个 __proto__ 属性指向实例原型,也就是构造函数的原型,实例可以调用到构造函数上的方法和属性,然后实例可以向构造函数传参。乍一看这不就是在变相的问如何实现继承吗?接下来,我们写个 demo 看看怎么实现上述表述的内容

阅读全文

Js 字符串转 Base64

最近想把字符串转换成 base64,不想用库,搜了下浏览器环境下 js 原生就支持字符串跟 base64 的相互转换,看看 demo:

// 加密
var a = btoa('canace22@qq.com')
// 解密
var b = atob(a)
console.log(a) // Y2FuYWNlMjJAcXEuY29t
console.log(b) // canace22@qq.com

阅读全文

Web 安全——CSRF

CSRF 攻击是比较常见的 web 攻击形式之一,本篇文章主要介绍产生 CSRF 攻击的原因,场景以及防范 CSRF 攻击的方法等内容

阅读全文

关于健忘那些事

鲍勃迪伦有首歌叫做’flowing in the wind’,美国也有一部长篇历史小说叫做 ‘gone with the wind’, 名字也好,故事也好,我都很喜欢。也许是喜欢这一类的题材,我的记忆也爱屋及乌,演变成了 ‘flowing in the wind’ 或者 ‘gone with the wind’ 这样的状态吧。

阅读全文

网页性能优化-防抖

讲讲防抖的使用场景、思想以及实现

阅读全文

Webpack 动态修改资源域名

webpack 动态修改资源域名方法分享

阅读全文