全部文章
共 1299 篇文章
开始性能优化之旅
事件循环机制 一、JavaScript 引擎的本质 核心职责 : 解析 JavaScript 语法 管理变量和内存 执行代码逻辑 不涉及 : 线程管理(Worker除外) I/O 操作 定时器控制 网络请求 常见引擎:V8(Chrome)、SpiderMonkey(Firefox)、JavaScriptCore(Safari) 二、宿主环境的扩展能力 宿主提供的多线程能力 : | 线程类型 | 功能 | 对应 API | | | | |...
backdrop-filter属性介绍
CSS 属性详解: 一、什么是 是 CSS 中的一种滤镜属性,用于对 元素背后的区域 应用图形效果(如模糊、亮度调整、对比度等)。 与 的区别: :作用于元素自身内容。 :作用于元素的背景(背后内容),通常需要元素本身带有透明度才能看到效果。 例如: 二、基本语法 常见的 : :模糊效果 :亮度调整 :对比度调整 :灰度 :色相旋转 :反色 :透明度 :饱和度 :怀旧效果 可同时使用多个: 三、使用示例 1. 毛玻璃效果(Glassmo...
vite常用配置
目录 1\. 基础配置 1.1 项目初始化 1.2 基础 vite.config.js 配置 配置说明与最佳实践 插件配置 (plugins) 好处 : 插件系统是Vite的核心特性,提供了丰富的功能扩展能力 坏处 : 过多插件会增加构建时间,插件冲突可能导致构建失败 建议 : 只引入必要的插件,定期检查插件更新和兼容性 适用场景 : 所有Vite项目都需要根据技术栈选择合适的插件 开发服务器配置 (server) host: ‘0.0...
实现大文件上传全流程详解
在日常开发中,大文件上传是个绕不开的坎——动辄几百 MB 甚至 GB 级的文件,直接上传不仅容易超时,还会让用户体验大打折扣。最近我用 Vue+Express 实现了一套完整的大文件上传方案,支持分片上传、断点续传、秒传和手动中。 一、先看效果:我们要实现什么? 先上核心功能清单,确保大家明确目标,知道我们要解决哪些实际问题: 大文件分片上传 :将文件切成固定大小的小片段分批上传,避免单次请求超时 秒传 :服务器已存在完整文件时,直接返...
边框的多种实现
在 CSS 世界里,边框不只是 一条路。你可能一直用 写边框,hover 时元素宽度变化、渐变边框做不出来……其实,现在有更酷、更灵活的方式来实现边框效果。今天我们就来盘一盘——都有哪些边框“新玩法”,以及什么时候用它们最合适。 1️⃣ 传统 border 优点: 简单直接,兼容性最好 可控边宽、样式、颜色 缺点: 不支持渐变、阴影等复杂效果 hover 动态变化会影响元素大小(因为 border 会占空间) ✅ 适用场景: 简单实用,...
前端首屏优化
话说,我在面试的时候,80%的情况下,都会被问到首屏优化问题,烦,恨 TCP Slow Start(慢启动)概念 咱先不说标题的数字哪里来的,先说一个概念,就是TCP的慢启动。 你们想哈,在浏览器和服务器开始建立连接的时候,服务器是并不知道浏览端网络的带宽、拥塞状况。假设你本地的带宽是1M,如果一开始服务器就发送2M的文件,那浏览器压根就不是人类,忍忍或者挤挤就能接收到的,这样就可能会引发丢包和重传。 想想,这个该有什么办法解决这个问题...
Function.prototype和Object.prototype
一道面试题引发的原型链血案,彻底搞懂 Function.prototype 和 Object.prototype 前言 有这样一道题: 目录 问题分析与答案揭晓 让我们先公布正确答案,然后深入分析原因: 为什么 是 而不是 ? 这是因为函数和实例的原型链路径完全不同! 原型链的本质机制 JavaScript中的两条原型链 在JavaScript中,存在两条不同的原型链: 关键理解:F.proto...
横向滚动讲解
横向滚动在移动端与桌面端的差异与解决方案 1\. 问题背景 在 Vue/React 等前端项目里,我们常常会实现一个横向滚动的列表,例如: 并配合 布局与固定宽度的子项,让子项在横向排列后出现滚动条。 在移动端(触屏设备),手指左右滑动时,容器能够自然横向滚动。 但在桌面端(PC 浏览器),很多时候看起来「不能滚动」。 2\. 移动端为什么能滚? 触摸事件 :手指横向拖动会触发浏览器的横向滚动逻辑。 惯性滚动支持 :加上 可以让 iOS...
彻底讲透as const + keyof typeof
一、为什么要 “as const” 1、默认情况下,TS把字面量推断成”宽类型“ 于是你写 ‘foo’ | ‘bar’ 时, 一旦拼错成 ’fooo‘, TS不会拦你。 2、加上 as const ,TS会把它当成”不可变的精确字面量” 数组、对象同理: 二、keyof typeof: 把值世界映射到类型世界 typeof:能把运行时的值变成类型; keyof:能把对象类型变成联合类型 合起来就是:给我一个对象,我立刻推出它所有建的字面...