小斑瘦身记:4M 到 300K 的华丽变身

2020-08-31
阅读 6 分钟
4.3k
Hello ~ 我是小斑,一个富文本编辑器。今天,咱来聊聊体重,对,没错!就是那令人头疼的体重!任何事物都烦这个体重,当然也包括我,当我的创造者阿飞发布小斑的第一个版本时,小斑足足有 4M 之重!看着控制台茫茫多的流量消耗,他愣住了:你。。。特么的这么怎么胖,足足 4M(包括 CSS)!但小斑我也很无奈呀!代码是你...

缓存 - 一个奇妙的想法

2019-11-29
阅读 4 分钟
1.3k
太慢了! “HTTP 你过来一下,有件事想和你商量商量!” 浏览器老大晃悠到了 HTTP 的手术室中说道。 “怎么有空过来,正忙着呢,快坐。” 说着,我放下手中的器具,抽出放在一旁的凳子。 “不了不了,我就想了解了解情况,门口还有还多 URL 等着你发送呢!” 浏览器老大叹了口气。 我一看门外,吓了一跳,门口的 URL 都已经围...

TCP 实习笔记 - 1

2019-11-13
阅读 3 分钟
1.5k
计算历:7e3 年 af 月 5e 日。天气:晴。在 Chrome 实习的第一天。 终于摆脱学校开始在 Chrome 实习啦,真是不错的一天,网络很好,没有丢包情况出现,现实的情况也没老师说的那么糟糕嘛。 前辈的工作台也太炫酷了吧,就是不知道在 FireFox 实习的同学怎么样,IE 那的同学,估计是手动操作吧!哈哈!! 今天用这工作台发...

TCP 的办公室

2019-11-04
阅读 4 分钟
1.4k
新人拜访 “您好,我是 TCP 服务的实习生,刚培训完,请问您就是 TCP 老司机吗?” 正坐在办公室悠闲喝着咖啡的我,差点一口喷出来,“哦哦,行,你终于来啦,看来几天前的资源申请通过了啊,老司机?” “浏览器老大这么叫你的,说你厉害,靠谱的很。” “好吧,既然来了,赶紧准备准备!这你的工作台。” 我放下手中的咖啡,走...

HTTP 的手术室

2019-10-30
阅读 3 分钟
1.3k
“去 HTTP 服务部,记住你的请求方式是 GET,还有这些请求头也一起拿走。” 伴随着 Enter 的输入,浏览器老大对新生成的 URL 说道。

URL - hash 的委屈

2019-10-30
阅读 4 分钟
1.2k
午夜的钟声已经响了 11 次,伴随着浏览器地址栏的输入 [链接],一个 URL 被浏览器创建,当然 URL 的 Hash 口袋里装的就是我,正式介绍下我自己:

一个 URL 的自述

2019-10-17
阅读 3 分钟
1.5k
虽说现在是凌晨 3 点,但 acohome.cn 所在的服务器却收到了一个请求:http://acohome.cn 。伴随着警报响起,睡梦中的服务器冷不防打了个激灵。

什么是 HTML 5?

2019-08-01
阅读 9 分钟
1.5k
HTML5 做为 HTML 标准的第 5 版,于 2014 年发布,相信关注过 HTML5 的发展史的朋友都知道该版本是 WHATWG 和 W3C 握手言和后诞生的,是 W3C 组织与浏览器厂商相互妥协的结果,其中的绝大部分规范都由 WHATWG 组织所制定,之后由 W3C 采纳并入标准中。

什么是 JAVASCRIPT?

2019-07-25
阅读 10 分钟
1.6k
解释性脚本语言:一类不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序的“脚本”,但其内容的的执行不需要提前编译的语言。通常作为别的程序的输入。

什么是 CSS?

2019-07-18
阅读 9 分钟
1.5k
前言 作为程序员,技术的落实与巩固是必要的,因此想到写个系列,名为 why what or how 每篇文章试图解释清楚一个问题。 why what or how 的第二章,什么是 CSS ? 释义 CSS - Cascading Style Sheets,层叠样式表 CSS 也算是一种标记语言,其内容作为浏览器的输入,浏览器会解析其文本内容,作为 HTML 附加的样式信息,...

什么是 HTML?

2019-07-01
阅读 7 分钟
1.2k
前言 作为程序员,技术的落实与巩固是必要的,因此想到写个系列,名为 why what or how 每篇文章解释清楚一个问题。 作为 why what or how 的第一章,选一个较为简单的话题,什么是 HTML ? 释义 HTML - HyperText Markup Language,超文本标记语言 标记语言,一类以固定的形式描述文档结构或是数据处理细节的语言,一般...

朋友,这里有个仓库需要你 PR 一下

2019-06-06
阅读 3 分钟
1.6k
前段时间,发布了一篇文章:学不动了,来点有趣的吧。发现 github 仓库被 frok 了很多次,因此下定决心要好好的把代码整理一下,方便大家查看代码以及更加愉快的 Pull Request。

学不动了,来点有趣的吧

2019-05-29
阅读 2 分钟
1.7k
本着折腾的性格,一直想写一个完全由我个人完成的动画,终于在前段时间完成了 typescript 的重写,并完善了 DEMO ,先看看动画效果如何

浏览器下的 Event Loop

2019-04-10
阅读 3 分钟
1.8k
javascript 的最开始的出现是为了给 web 页面增添一些动态的效果,那么就避免不了获取页面上的元素信息,如果 javascript 是以多线程的形式运行在浏览器内,如果两个线程内的 javascript 同时去获取/修改,某个页面上的元素,那么浏览器该让哪个 javascript 线程拥有获取/修改该元素的权限呢?由于元素的信息会经常性的...

npm 发包小记

2018-07-02
阅读 3 分钟
5.3k
发包过程 首先要有个账号,到 npm 官网上注册即可。 添加用户 {代码...} 登录 {代码...} 发布 {代码...} 取消发布 {代码...} 对于取消发布,仅仅能在发布后的 24 小时内取消。 其他 package.json 文件 这几个字段是需要的: {代码...} 一般通过 npm init 即可。 license MIT 的模板 {代码...} 使用时,只需要把 <year...

手撸一个 MVVM 不是梦

2018-06-26
阅读 12 分钟
2.2k
在实现 VUE 中 MVVM 的系列文章的最后一篇文章中说道:我觉得可响应的数据结构作用很大,在整理了一段时间后,这是我们的最终产出:RD - Reactive Data ok 回到整理,这篇文章我们不研究 Vue 了,而是根据我们现在的研究成果来手撸一个 MVVM。 简单介绍 RD 先看看下我们的研究成果:一个例子 {代码...} 写法上与 Vue 的...

一个超级炫的矩阵运动库,了解一下?

2018-05-29
阅读 2 分钟
2k
用 Matrix 生成一个二维矩阵,通过规定的运动形式,确定出需要运动的点,触发特定事件,在特定时间后进行下一轮的运动,确定运动点,触发事件,直到所有的点都运动过。

VUE - MVVM - part13 - inject & 总结

2018-05-14
阅读 3 分钟
2k
在上一步我们实现了,父子组件,和 props 一样 provide / inject 也是基于父子组件实现的,相比于 props 它的实现还要更简单一点。我们先来看看官网上对 provide / inject 的描述。

VUE - MVVM - part12 - props

2018-05-10
阅读 5 分钟
1.6k
在上一步,我们实现 extend 方法,用于扩展 Vue 类,而我们知道子组件需要通过 extend 方法来实现,我们从测试例子来入手,看看这一步我们需要实现什么:

VUE - MVVM - part11 - Extend

2018-05-07
阅读 4 分钟
1.7k
在 Vue 中有 extend 方法可以扩展 Vue 的实例,在上一步中,有一些实现是必须要通过子父组件才能实现,而子组件相当于一个特殊的 Vue 实例,所以这步,我们先把这个扩展实例的方法实现。

VUE - MVVM - part10 - Computed

2018-05-03
阅读 6 分钟
1.5k
看这篇之前,如果没有看过之前的文章,移步拉到文章末尾查看之前的文章。 回顾 先捋一下,之前我们实现的 Vue 类,主要有一下的功能: 属性和方法的代理 proxy 监听属性 watcher 事件 对于比与现在的 Vue 中的数据处理,我们还有一些东西没有实现:Computed、props、provied/inject。 由于后两者和子父组件有关,先放一...

VUE - MVVM - part9 - Vue

2018-04-26
阅读 6 分钟
1.6k
激动人心的时候即将来临,之前我们做的 8 步,其实都在为这一步打基础,这一步,我们来简单实现一个 Vue 对象,还没有看过之前代码的同学,请确认看过之前的文章。

VUE - MVVM - part8 - 优化Event

2018-04-25
阅读 4 分钟
1.4k
看这篇之前,如果没有看过之前的文章,可拉到文章末尾查看之前的文章。 回顾 在上一步我们实现了一个简易的事件管理的类,接下来我们把它给优化下,方便我们的使用。主要优化内容: 方便为多个事件添加同一个函数 方便为一个事件添加多个函数 有针对性的取消事件的函数 第一点和第二点都要修改 $on 函数,所以我们一起改...

VUE - MVVM - part7 - Event

2018-04-23
阅读 3 分钟
1.7k
在标准浏览器中,我们经常使用:addEventListener 来为一个 DOM 添加一个事件(click、mousemove、tap等)。

VUE - MVVM - part6 - Array

2018-04-20
阅读 5 分钟
2k
看这篇之前,如果没有看过之前的文章,可拉到文章末尾查看之前的文章。 回顾 在前面的几个 step 中,我们实现对象的属性的监听,但是有关于数组的行为我们一直没有处理。我们先分析下导致数组有哪些行为: 调用方法:arr.splice(1, 2, 'something1', 'someting2') 直接赋值:arr[1] = 'something' 解决行为一 首先我们知...

VUE - MVVM - part5 - Observe

2018-04-16
阅读 4 分钟
1.9k
看这篇之前,如果没有看过之前的文章,可拉到文章末尾查看之前的文章。 回顾 在 step4 中,我们大致实现了一个 MVVM 的框架,由3个部分组成: defineReactive 控制了对象属性,使变为可监听结构 Dep 收集管理依赖 Watcher 一个抽象的依赖 defineReactive 和 Dep 改造了对象下的某个属性,将目标变成了观察者模式中的目标...

VUE - MVVM - part4 - 优化Watcher

2018-04-13
阅读 4 分钟
1.6k
看这篇之前,如果没有看过之前的文章,可拉到文章末尾查看之前的文章。 回顾 首先我们思考一下截止当前,我们都做了什么 通过 defineReactive 这个函数,实现了对于数据取值和设置的监听 通过 Dep 类,实现了依赖的管理 通过 Watcher 类,抽象出了对象下某个属性的依赖,以及属性变换的 callBack 发现问题 对比 Vue 的 M...

VUE - MVVM - part3 - Watcher

2018-04-12
阅读 4 分钟
1.8k
在 step2 中,我们实现了一个管理依赖的 Dep ,但是仅仅使用这个类并不能完成我们想实现的功能,而且代码的解耦上也有点小问题。以下是在 step2 中最后说的几个问题:

VUE - MVVM - part2 - Dep

2018-04-11
阅读 3 分钟
1.7k
在上一篇我们大概实现了,Vue 中的依赖收集和触发,但我们仅仅是将依赖维护在一个内置数组中,这样做虽然容易理解,但毕竟不好维护,为了更容易的维护这些依赖,我们来实现一个维护依赖的类。

VUE - MVVM - part1 - defineProperty

2018-04-11
阅读 3 分钟
2.3k
在 VUE 中关于如何实现在网上可以搜出不少,在看了部分源码后,梳理一下内容。 首先,我们需要了解一下 js 中的一个 API :Object.defineProperty(obj, prop, descriptor) 一般情况下我们为一个对象添加一个属性一般都会这么写 {代码...} Object.defineProperty 也能做到同样的效果 {代码...} 这样写虽然代码量多了不少,...