LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

90% 前端都不知道的 20 个「零依赖」浏览器原生能力!

zhenglin
2026年1月5日 16:31 本文热度 435

分享 20 个 从2025到今年依旧「少人知道、却能立竿见影」的原生 API


1. ResizeObserver

精准监听任意 DOM 宽高变化,图表自适应、虚拟滚动必备。

  .observe(chartDom);

2. IntersectionObserver

检测元素进出视口,一次搞定懒加载 + 曝光埋点,性能零损耗。

new IntersectionObserver(entrieList =>

 

 entrieList.forEach(e => e.isIntersecting && loadImg(e.target))

).observe(img);

3. Page Visibility

侦测标签页隐藏,自动暂停视频、停止轮询,移动端省电神器。

document.addEventListener('visibilitychange', () =>

  document.hidden ? video.pause() : video.play()

);

4. Web Share

一键唤起系统分享面板,直达微信、微博、Telegram,需 HTTPS

代码高亮:

navigator.share?.({ title: '好文', url: location.href });

5. Wake Lock

锁定屏幕常亮,直播、PPT、阅读器不再自动息屏。


await navigator.wakeLock.request('screen');


6. Broadcast Channel

同域标签实时广播消息,登录态秒同步,告别 localStorage 轮询。

const bc = new BroadcastChannel('auth');

bc.onmessage = () => location.reload();


7. PerformanceObserver

无侵入采集 FCPLCPFID,一行代码完成前端性能监控。

new PerformanceObserver(list =>

  list.getEntries().forEach(sendMetric)

).observe({ type: 'largest-contentful-paint', buffered: true });


8. requestIdleCallback

埋点日志丢进浏览器空闲时间,首帧零阻塞。

代码高亮:

requestIdleCallback(() => sendBeacon('/log', data));


9. scheduler.postTask

原生优先级任务队列,低优任务后台跑,主线程丝滑。

scheduler.postTask(() => sendBeacon('/log', data), { priority: 'background' });


10. AbortController

随时取消 fetch,路由切换不再旧请求竞态,兼容 100%

const ac = new AbortController();

fetch(url, { signal: ac.signal });

ac.abort();


11. ReadableStream

分段读取响应流,边下载边渲染,大文件内存零爆涨。

const reader = response.body.getReader();

while (true) {

  const { done, value } = await reader.read();

  if (done) break;

  appendChunk(value);

}


12. WritableStream

逐块写入磁盘或网络,实时保存草稿、上传大文件更稳。

代码高亮:

const writer = stream.writable.getWriter();

await writer.write(chunk);


13. Background Fetch

PWA 后台静默下载,断网恢复继续,课程视频提前缓存。

await registration.backgroundFetch.fetch('video', ['/course.mp4']);


14. File System Access

读写本地真实文件,需用户授权,Web IDE 即开即用。

const [fh] = await showOpenFilePicker();

editor.value = await (await fh.getFile()).text();


15. Clipboard

异步读写剪贴板,无需第三方库,HTTPS 环境安全复制。

await navigator.clipboard.writeText('邀请码 9527');


16. URLSearchParams

解析、修改、构造 URL 查询串,告别手写正则。

代码高亮:

const p = new URLSearchParams(location.search);

p.set('page', 2);

history.replaceState({}, '', `?${p}`);


17. structuredClone

深拷贝对象、数组、Map、Date,循环引用也能完美复制。

const copy = structuredClone(state);


18. Intl.NumberFormat

千分位货币百分比一次格式化,国际化零配置。

new Intl.NumberFormat('zh-CN', { style: 'currency', currency: 'CNY' })

  .format(1234567); // ¥1,234,567.00


19. EyeDropper

浏览器级吸管工具,像素级取色,设计系统直接调用。

const { sRGBHex } = await new EyeDropper().open();


20. WebCodecs

原生硬解码音视频,4K 60 帧流畅播放,CPU 占用直降。

代码高亮:

const decoder = new VideoDecoder({

  output: frame => ctx.drawImage(frame, 0, 0),

  error: console.error

});

decoder.configure({ codec: 'vp09.00.10.08' });


参考文章:原文链接


该文章在 2026/1/5 16:31:36 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved