Service Worker生成器 - 基础缓存策略配置
选择缓存策略(Network First, Cache First等),填写预缓存文件列表,生成sw.js文件。
UD5工具箱
检测 navigator.deviceMemory API,获取设备内存信息,制定前端按需降级策略
手动选择内存等级,查看对应降级策略
| 内存等级 | 图片质量 | 动画效果 | 懒加载 | 缓存策略 | 虚拟滚动 | 预加载 |
|---|---|---|---|---|---|---|
| 0.25 GB | 低分辨率缩略图 | 禁用/极简 | 激进懒加载 | 最小缓存 | 强制启用 | 禁用 |
| 0.5 GB | 低质量 WebP | 仅必要动画 | 激进懒加载 | 小容量缓存 | 强制启用 | 禁用 |
| 1 GB | 中等质量 WebP | 简化动画 | 默认启用 | 适度缓存 | 建议启用 | 关键资源 |
| 2 GB | 标准质量 | 标准动画 | 按需启用 | 标准缓存 | 可选 | 适度预加载 |
| 4 GB | 高质量 | 丰富动画 | 可选 | 充分缓存 | 无需 | 积极预加载 |
| 8+ GB | 原始质量 | 全效果 | 无需 | 最大缓存 | 无需 | 全量预加载 |
在项目入口文件中使用以下代码检测设备内存:
const deviceMemory = navigator.deviceMemory || 'unknown';
console.log(`设备内存: ${deviceMemory} GB`);
if (deviceMemory <= 1) {
// 低内存设备 - 启用降级模式
document.documentElement.classList.add('low-memory');
} else if (deviceMemory <= 4) {
// 中等内存设备
document.documentElement.classList.add('mid-memory');
} else {
// 高内存设备 - 全功能体验
document.documentElement.classList.add('high-memory');
}
结合内存与网络状态,实现智能降级:
function getPerformanceTier() {
const mem = navigator.deviceMemory || 4;
const conn = navigator.connection;
const net = conn?.effectiveType || '4g';
const saveData = conn?.saveData || false;
if (saveData || mem <= 0.5 || net === 'slow-2g') return 'minimal';
if (mem <= 1 || net === '2g') return 'low';
if (mem <= 2 || net === '3g') return 'moderate';
if (mem <= 4) return 'standard';
return 'high';
}
// 根据等级动态加载资源
const tier = getPerformanceTier();
const imgQuality = { minimal:'low', low:'medium',
moderate:'standard', standard:'high', high:'original'
}[tier];
navigator.deviceMemory 是 Web Performance API 的一部分,返回设备内存(RAM)的近似值,单位为 GB。返回值通常是 0.25、0.5、1、2、4、8 这几个值之一。该 API 主要用于帮助前端开发者根据设备硬件能力进行按需降级,优化用户体验。需要注意的是,它返回的是浏览器可用内存的估算值,而非设备的物理总内存。
undefined。如果您的浏览器不支持,可以使用上方的模拟器手动选择内存等级来查看对应的降级策略。
navigator.connection 的网络信息进行综合判断。
navigator.deviceMemory 返回的是内存大小(GB),而 navigator.hardwareConcurrency 返回的是CPU 逻辑核心数。两者结合使用可以更全面地评估设备性能:内存影响数据缓存和 DOM 规模,CPU 核心数影响并行计算和渲染能力。例如,低内存 + 多核心的设备可能需要减少缓存但可以处理较多并行任务。
loading="lazy" 延迟加载图片和 iframeprefers-reduced-motion 媒体查询navigator.connection 提供了网络信息(有效类型、下行速度、RTT、数据保护模式)。综合判断逻辑:saveData 标志,用户开启数据保护时应优先节省流量。
选择缓存策略(Network First, Cache First等),填写预缓存文件列表,生成sw.js文件。
枚举当前域下所有Cache Storage,查看条目详情,手动删除缓存,辅助PWA开发调试。
创建多个存储桶,分别设置持久化与配额策略,管理不同业务数据的存储优先级与驱逐顺序。
输入URL,在同一个页面上并排显示手机/平板/桌面三种尺寸的实时预览。
记录物品名称、数量,执行入库出库操作,自动计算剩余量,数据保存在浏览器。
为表单设计全局错误摘要区,当提交出错时自动生成错误链接并聚焦,符合 WCAG 3.3.1。
使用scheduler.postTask API安排不同优先级的任务,并观察执行顺序。
在线文本去重工具,检测并删除重复行,支持保留首次出现或删除全部重复行,快速清理数据。
生成指定宽度和高度的占位图片,可选择类别(自然、人物、抽象)和灰度。
生成固定在页面顶部或底部的滚动进度条,显示当前阅读进度。
输入数值,即时在字节、千字节、兆字节等之间转换。
生成包含已完成、活跃、未完成状态的横向步骤进度指示器HTML/CSS。
设定百分比、颜色和粗细,生成环形SVG进度条代码,可增加动画。
为图片/iframe列表自动添加loading='lazy'属性及fallback,优化页面性能。
通过下载指定图片或数据包,估算当前网络的下载速度和延迟,纯前端测速。
输入URL,检测其是否包含常见安全增强的HTTP响应头并给出评分。
监听并自动保存您复制的文本,可随时回溯粘贴,仅本地存储保障隐私。
引导团队想象项目已经惨败,列出所有可能原因,然后防范。
绘制状态节点和转移边,输入字符串测试是否被该有限自动机接受。
添加计划存放的箱子尺寸,预估所需的最小存储空间或柜号。
输入多个CSS选择器,以图表形式展示各选择器特异性的 (a,b,c) 值对比。
将总小费按照各员工工时或权重比例公平分配,适合餐饮服务行业。
输入文件大小和网络速度,计算预计下载时长。
将CSS规则分配到不同@layer,并可视化展示最终生效声明及其来源层级,深入理解级联。
交互式调整@layer顺序和选择器,实时观察CSS级联层如何影响样式应用,学习现代特性。
选择多个PDF,调整顺序后使用pdf-lib合并成一个新PDF,本地处理安全。
简单输入合成配方和需求产出,计算需要多少个原料机器和传送带配比。
输入文件扩展名或MIME类型,查询对应的标准媒体类型,涵盖常见文档、图片、音视频格式。
上传设计稿,按喜欢、疑问、建议三区邀请评审回复,形成报告。
将相似任务拖动到同一批次,安排连续的专注时段批量处理,减少切换成本。