JS 检测设备性能

性能检测包括 检测当前运行时的性能(繁忙度) 检测设备硬件所反映的性能水平 [[toc]] 运行时性能 首先,在 JS 中并不能直接获取 CPU 占用率、内存使用信息。 但可以统计一些性能相关的数值来间接评估主线程当前的繁忙度。 注意是[主线程](https://developer.mozilla.org/zh-CN/docs/Glossa ...

WebContainer 原理分析

WebContainer 是一种基于浏览器的运行时,可完全在浏览器标签页内执行 Node.js 应用程序和操作系统命令。 惊艳的地方有两点: 能在浏览器中运行 Node 服务,居然还能启动 DevServer “监听端口” 离线后 IDE 开发中的页面也能正常开发 大致原理 以 <https://stackbl ...

JS 多线程并发

[[toc]] 为什么需要并发 我们常听说 JS 是单线程模型,即所有代码都在主线程中执行的。 如果某些任务计算量较大,将阻塞主线程,UI 界面轻则掉帧、重则卡死。 // 提示:本文所有代理均可复制到浏览器控制台中执行,验证效果 // ...

Mini Canvas Lib 核心交互实现原理

背景 需要使用 Canvas 实现添加图片、文字、摄像头画面,并且支持拖拽、缩放、旋转等功能。 但成熟 Canvas 库(比如 Sprite.js Fabric.js )一般都比较庞大(300kb+),所以自己实现精简版本,减少体积。 DEMO ...

调试鼠标悬浮(hover)元素的css技巧

有两种方式实现元素的鼠标悬浮交互: css;使用伪类.foo:hover{ /* 悬浮时样式 */ } js;通过监听元素的mouseenter、mouseleave事件,控制元素的样式 方法一 使用 chrome devtools 提供的样式调试工具 比如修改悬浮时文字的背景色, [Demo](https://www.w3school.com ...

前端模块化设计

本方案是一个预研项目的产出,只做出了 DEMO,后因非技术原因,方案没有落地实践。 背景 某些页面展示逻辑复杂,比如点评 APP 首页,用户看到的页面结构是动态的,与所选城市、地理位置、APP 版本相关。 即使 web 端发版迅速,没有 Native 类似的兼容问题,如果所有逻辑代码维护成本也会越来越大。 目标 设计一套方案,使 web 页面支持根据配置 ...

React Hooks 的思考

前言 听说 Hooks 有一段时间了,一直没去看文档。最近终于想起这事儿,浏览一遍文档后,立即燃起了一种“兴奋感”。 这种“兴奋感”犹如当初看见“箭头函数”、“async/await”一样。 所以,即使在有很多分析文章的情况下,仍想再写一些个人的思考和感受。 [react hooks官方文档](https://reactjs.org/docs/hooks-intro.html ...

JS优缺点

回顾上两期 优点(简单) 对象 链(原型链 & 作用域链) 一切都是对象(包括函数),构建世界的原料,越少越简单、灵活。 jimu 观察者模式,例: class Observer { constructor() { this.subscribe ...

在Termux中运行web项目

Termux是什么 官网 > Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required. A minimal base system is installed au ...