Skip to main content

· 9 min read
卤代烃

observe-browser-network-hero-image.jpg

前言

📢 招聘

正式开始文章前先插播一条招聘信息。

字节 Web Infra 团队最近开启新一轮招聘了,如果你对 AI/Framework/Rust/Performance 感兴趣,可以来看看我们的岗位(具体岗位信息可以看这个招聘链接 👉 字节跳动 Web Infra - Web Solutions 团队招人啦!

简历可以发到我的邮箱 skychx@hotmail.com,我可以帮你内推岗位并跟进进度 🥳


浏览器的 Devtools 工具有多种观测 network 性能数据的方式,但是这些数据的表现方式各有不同。本文就是解读一下这些性能数据的表现方式,并做纵向比较,帮助更多的人去优化网络带来的性能问题。

· 9 min read
卤代烃

cross-origin-and-performance-hero-image.jpg

前言

招聘信息

正式开始文章前先插播一条招聘信息。

字节 Web Infra 团队最近开启新一轮招聘了,如果你对 Web Framework/Runtime/Performance,或对编译构建/Rust/AI 感兴趣,可以来看看我们的岗位(具体岗位信息可以看这个招聘链接 👉 字节跳动 Web Infra - Web Solutions 团队招人啦!

简历可以发到我的邮箱 skychx@hotmail.com,我可以帮你内推岗位并跟进进度 🥳


由于 Web 的开放特性,同样是糊页面,Web 前端工程师往往要和 CORS(跨域请求)做一些斗争,例如我之前遇到的一个 《SVG 图片字体失效问题》 就是 CORS 引起的。

· 6 min read
卤代烃

find_inject_js_hero_image.jpg

A webpage can not only run on public browsers, but also on the WebView component within the APP. Since these Hybrid Web pages run in a relatively closed environment, the APP itself can inject some JS code into WebView, making targeted enhancements to the Web page (the most typical application is JSBridge, which provides a bridge for Web <--> Native communication).

· 11 min read
卤代烃

ybsbny.png

吐槽时间

不知道从什么时候开始,前端开始卷一些 “高端知识”,动不动就浏览器底层原理V8 是如何运行的,倒不是说这些没啥用,只是来势汹汹好像不懂这些就不能糊页面一样。

我工作中和内核团队与虚拟机团队也合作过并咨询过他们这些相关问题,大家的态度也很明确,面对这种千万行代码的大型工程项目,他们作为专业人士也不是啥都懂,万一遇到个真的啥都懂的,人家必然也不会去做前端,这就显得一些面试官和求职者的八股攻防战可笑了起来。

那么如果真的遇到一些场景需要学习相关知识,或者就是单纯的个人感兴趣想了解一下原理和细节,最好的办法是什么呢?很简单,直接看相关团队的 Blog 或核心开发人员的 Blog & 演讲,这都是除去源码的第一手消息,水平比那些二道贩子不知道高到哪里去了。

· 6 min read
卤代烃

最近两年没怎么更新博客,算了一下从 2022 年开始,只更新了 5 篇(虽然之前也不多),这个还是远远低于自己的预期的。其实在公司内部也输出过一些技术文档和文章,但是限于篇幅和敏感性都没有放到公网上,其实还是有些可惜的。

· 21 min read
卤代烃

MIUI_hero_image.jpg

最近给长辈置换一下手机,在有限的预算内,经过多次比较发现还是小米的硬件配置更好一些,最后也是下单了小米。

在 2022 年,Android 系统对手机权限的进一步限制,一些过往的卡顿问题都得到了一定的解决。但是在国内的定制版 Android 机上,和原生 Android 系统还是多了一些特色的东西:

  • 无处不在的系统级广告,诱导用户点击/误触,从而去跳转/下载 APP
  • “不小心下载” 的 APP,占用宝贵的内存/硬盘资源,拖慢手机速度
  • 国内特色的航母级 APP,一个 APP 占几个 G 的硬盘,有些小而美的应用甚至几十个 G

上面的三个问题中,前两个可以通过一定的努力解决大部分,第三个大家都没得选只能硬抗。本文就是聚焦于「关闭 MIUI 无处不在的广告」这个话题的。

· 24 min read
卤代烃

charles_hero_image.jpg

更新提示

文章已于 2022-08-22 更新

作为一名 Web 开发工程师,天天都会和网络打交道。Charles 作为一款网络抓包工具,几乎成了 Web 开发的标配。

本文是我深度使用 Charles 后总结而成,不同于其它介绍 Charles 的文章,这篇文章不会详细介绍 Charles 的各个功能(例如 remote 和 rewrite),而是专注于分析一个问题:什么情况下 Charles 会抓包失败?

· 17 min read
卤代烃

fontend-target-hero-image.jpg

更新提示

文章已于 2022-10-10 更新

对于大部分开发者来说,版本兼容是一件存在感很低的事情,因为它在绝大部分情况下都是一行配置,在一些前端工具链(例如 Babel、CoreJS,Autoprefixer 等工具)的帮助下适配到目标浏览器,只会在一些大的 break change 事件(例如 Vue3 必须在支持 Proxy 的现代浏览器下才能运行)下才会关注这件不起眼的事情。

但当你稍微研究一下的时候,才会发现这块儿内容知识非常杂,因为版本兼容的相关知识没有那么多内在逻辑性,很多细碎的知识点散落在在各个商业公司的博弈和版本变更中。前段时间因工作需要对部分语言/浏览器特性重点关注了一下,以此文做一下记录。

本文主要记录了移动端的版本适配问题,未对桌面端做更多的研究,后面有可能补充相关内容。