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).
🪢 [网络协议] 浅谈 HTTP 优先级算法的演进
前两天在「即刻」上一时兴起写了一段 HTTP 优先级的发展历程,这两天觉得当时写的还是太仓促了,所以准备写个 Blog 扩写一下,就「优先级」这个概念纵向分析,看看这些基础协议的发展和进化。
⚡️ The Cost Of JavaScript (2017 - 2023)
吐槽时间
不知道从什么时候开始,前端开始卷一些 “高端知识”,动不动就浏览器底层原理,V8 是如何运行的,倒不是说这些没啥用,只是来势汹汹好像不懂这些就不能糊页面一样。
我工作中和内核团队与虚拟机团队也合作过并咨询过他们这些相关问题,大家的态度也很明确,面对这种千万行代码的大型工程项目,他们作为专业人士也不是啥都懂,万一遇到个真的啥都懂的,人家必然也不会去做前端,这就显得一些面试官和求职者的八股攻防战可笑了起来。
那么如果真的遇到一些场景需要学习相关知识,或者就是单纯的个人感兴趣想了解一下原理和细节,最好的办法是什么呢?很简单,直接看相关团队的 Blog 或核心开发人员的 Blog & 演讲,这都是除去源码的第一手消息,水平比那些二道贩子不知道高到哪里去了。
🔄 博客内容的调整
最近两年没怎么更新博客,算了一下从 2022 年开始,只更新了 5 篇(虽然之前也不多),这个还是远远低于自己的预期的。其实在公司内部也输出过一些技术文档和文章,但是限于篇幅和敏感性都没有放到公网上,其实还是有些可惜的。
🖼️ How to solve the problem of missing fonts in SVG images
The solution to fixing "Font missing in SVG image" is simple. If you just want to see the answer, you can skip to the end. If you want to see my troubleshooting process and specific reasons, you can read from the beginning.
🤖️ 如何逐步关闭 MIUI 无处不在的广告
最近给长辈置换一下手机,在有限的预算内,经过多次比较发现还是小米的硬件配置更好一些,最后也是下单了小米。
在 2022 年,Android 系统对手机权限的进一步限制,一些过往的卡顿问题都得到了一定的解决。但是在国内的定制版 Android 机上,和原生 Android 系统还是多了一些特色的东西:
- 无处不在的系统级广告,诱导用户点击/误触,从而去跳转/下载 APP
- “不小心下载” 的 APP,占用宝贵的内存/硬盘资源,拖慢手机速度
- 国内特色的航母级 APP,一个 APP 占几个 G 的硬盘,有些小而美的应用甚至几十个 G
上面的三个问题中,前两个可以通过一定的努力解决大部分,第三个大家都没得选只能硬抗。本文就是聚焦于「关闭 MIUI 无处不在的广告」这个话题的。
🍶 为什么你的 Charles 会抓包失败?
文章已于 2022-08-22 更新
作为一名 Web 开发工程师,天天都会和网络打交道。Charles 作为一款网络抓包工具,几乎成了 Web 开发的标配。
本文是我深度使用 Charles 后总结而成,不同于其它介绍 Charles 的文章,这篇文章不会详细介绍 Charles 的各个功能(例如 remote 和 rewrite),而是专注于分析一个问题:什么情况下 Charles 会抓包失败?
🗂 前端版本兼容问题的探索
文章已于 2022-10-10 更新
对于大部分开发者来说,版本兼容是一件存在感很低的事情,因为它在绝大部分情况下都是一行配置,在一些前端工具链(例如 Babel、CoreJS,Autoprefixer 等工具)的帮助下适配到目标浏览器,只会在一些大的 break change 事件(例如 Vue3 必须在支持 Proxy 的现代浏览器下才能运行)下才会关注这件不起眼的事情。
但当你稍微研究一下的时候,才会发现这块儿内容知识非常杂,因为版本兼容的相关知识没有那么多内在逻辑性,很多细碎的知识点散落在在各个商业公司的博弈和版本变更中。前段时间因工作需要对部分语言/浏览器特性重点关注了一下,以此文做一下记录。
本文主要记录了移动端的版本适配问题,未对桌面端做更多的研究,后面有可能补充相关内容。
🗂 对 web.dev 所有 blog 的整理与归档
文章已于 2022-10-10 更新
最近在做 web 性能优化的工作,所以想集中学习了解一下相关的专题内容。这部分内容肯定要学习一手信息,所以找先找了 https://web.dev/,一个 Google 官方推出的一个面向 Web 开发者的网站,里面有非常多的教程和最佳实践,非常适合有性能优化诉求的开发者去浏览和学习。
网站的核心部分分为 4 类:
- Learn:体系化的教程,例如性能优化和 PWA
- Measure:就是一个在线版本的 Lighthouse,和 Chrome DevTools 的 Lighthouse 功能一致
- Case Study:优化案例(商业互吹),内容一般为采用 X 优化带来数据 Y 的提升最终带来 Z 的商业增长
- Blog:内容较杂,优化教程/API 解读/优化案例等等都有涉及
从上面的结构可以看出,Lean/Measure/CaseStudy 这三个章节内容都是比较体系化的,但是 Blog 内容却没有一个很好的分类。以我的阅读经验,Blog 里有一些非常好的文章,所以我很好奇 Blog 章节里有多少好东西可供挖掘,于是花了几个月的时间,把所有的 Blog 读了一遍,并以自己的认知对内容做了分析和总结,以便自己后续回顾与搜索。
⚡️ 我是如何把个人网站的图片服务资费降低 90% 的
2021 年一直没有怎么更文,2022 准备开个好头,所以先挑些简单的内容写一写,记录一下我是如何把个人站点的文件存储资费降低 90% 的。