前端 10 个 JS 神 API,开箱即用

news/2025/9/22 14:34:51/文章来源:https://www.cnblogs.com/CaktyRiven/p/19105232

1 Page Visibility API —— 页面“隐身”探测

image

 常用场景: 用户切标签页时暂停视频、停止轮询

document.addEventListener('visibilitychange', () => {document.visibilityState === 'hidden'? video.pause(): video.play();
});

2 Web Share API —— 一键唤起系统分享

image

注意:需 HTTPS

场景:把当前文章内容分享到微信、微博

if (navigator.share) {navigator.share({title: '我的新文章',text: '快来看看',url: location.href,});
}

3 Broadcast Channel —— 跨标签页通信

image

场景: A 标签页登录,B 标签页自动刷新

const bc = new BroadcastChannel('login');
bc.postMessage({ token: 'abc123' });
bc.onmessage = (e) => console.log(e.data);

4 Intl.NumberFormat —— 一键千分位

image

 场景: 价格、股票、报表格式化

new Intl.NumberFormat('zh-CN').format(1234567); // 1,234,567

5 IntersectionObserver —— 懒加载 + 曝光埋点

image

 场景: 图片懒加载、广告曝光统计

const io = new IntersectionObserver((entries) => {entries.forEach((e) => e.isIntersecting && loadImg(e.target));
});
io.observe(img);

6 ResizeObserver —— 元素级尺寸监听

image

 

场景: 响应式图表、虚拟滚动

const ro = new ResizeObserver((entries) => {entries.forEach((e) => console.log('尺寸变化', e.contentRect));
});
ro.observe(chartContainer);

7 Clipboard API —— 无依赖复制

image

注意: 需 HTTPS

场景: 一键复制邀请码、优惠券码

await navigator.clipboard.writeText('COUPON2025');

8 URLSearchParams —— 再也不用正则解析 query

image

场景: 路由、埋点、搜索参数

const params = new URLSearchParams(location.search);
params.get('id'); // ?id=123

9 AbortController —— 可取消的 fetch

image

 场景: 取消过期请求、防抖动

const controller = new AbortController();
fetch(url, { signal: controller.signal });
controller.abort(); // 立即中断

10 requestIdleCallback —— 主线程垃圾时间调度器

image

 场景: 埋点、预加载、长计算零阻塞

requestIdleCallback(() => {// 在主线程空闲时执行
});

一键速查表(面试背)

API一句话记忆
Page Visibility 页面隐藏时暂停
Web Share 一键系统分享
Broadcast Channel 跨标签页通信
Intl.NumberFormat 千分位/货币格式化
IntersectionObserver 懒加载+曝光
ResizeObserver 元素尺寸监听
Clipboard 无依赖复制
URLSearchParams 解析 query 神器
AbortController 可取消 fetch
requestIdleCallback 垃圾时间任务
作者:前后端小能手
原文链接:https://zhuanlan.zhihu.com/p/1939393153007346495

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

故障处理:清除 DBA_DATAPUMP_JOBS 视图中的异常数据泵作业

故障处理:清除 DBA_DATAPUMP_JOBS 视图中的异常数据泵作业我们的文章会在微信公众号IT民工的龙马人生和博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢! …

Web自动化测试智能体详解

自然语言驱动Web自动化,让测试更智能、更高效 本次Web 自动化测试智能体课程将带您探索如何利用自然语言驱动 Web 自动化测试,显著提升测试效率与智能化水平。 课程亮点 本公开课将聚焦以下核心内容: Web 常见自动化…

Queue 配合Thread使用

Queue 配合Thread使用 生产消费者模型 结果 线程【3】开始下载https://picsum.photos/200/300线程【0】开始下载https://picsum.photos/300/300线程【4】开始下载https://picsum.photos/400/300 线程【1】开始下载http…

MyEMS 进阶应用:从单厂能耗管理到集团跨区域能源数据协同分析

对于许多现代化集团企业而言,能源成本是运营管理中不可忽视的核心支出。当业务遍布全国乃至全球时,能源管理便从单一的“点”(单个工厂、楼宇)上升为复杂的“面”(整个集团网络)的挑战。传统的单点能耗管理系统已…

Playwright自动化测试框架与AI智能体应用

自动化 数据驱动 MCP协议 智能体,四位一体打造下一代测试体验 本次Playwright自动化测试框架与AI智能体应用的课程将带您深入了解如何利用Playwright这一现代Web自动化测试框架,结合AI智能体技术,提升测试效率与…

快速搞定Dify+Chrome MCP:打造能操作网页的AI助手

你是否想过让AI不仅能回答问题,还能直接操作浏览器帮你做事?比如自动填写网页表单、抓取特定数据、或者点击按钮?现在,通过Dify和Chrome MCP的结合,你可以在3分钟内搭建一个能真正"动手"操作网页的AI助…

以下内容在if判定的时候会被判定为 假

Javascript中被判定为 假 值的情况false 0 和 -0 "" 空字符串 null undefined NaN望粥汁!

Python __init__.py文件

作用在python中,存在__init__.py的文件夹被认为是包。 __init__.py文件一般用来加载包内代码依赖资源和设定包的导出行为。执行时机第一次通过"import xxx"或"from xxx import yyy"的方式, 导入包…

20250330_信安一把梭_考试篇

流量分析, 应急响应, http, ssh, icmp, ftp, telnet, 信安一把梭Tags:流量分析, 应急响应, http, ssh, icmp, ftp, telnet, 信安一把梭 0x00. 题目 某集团的路由器设备被黑客攻击了,运维工程师小辉辉正在打王者走不开…

VS Code配置Conda环境完整指南

1. 配置Anaconda PowerShell Prompt 找到Miniconda路径 [安装路径]\miniconda3\Scripts\activate.bat # 例如: D:\miniconda3\Scripts\activate.bat # 或: C:\Users\[用户名]\miniconda3\Scripts\activate.bat配置VS C…

不同Windows系统中支持的最新.Net Framework/.NET版本

在前面我写过一篇关于不同系统版本中,支持.Net Framework版本情况的文章。 https://www.cnblogs.com/zhaotianff/p/16963712.html 最近在技术群里讨论时,有涉及到Windows XP最高支持到哪个.Net Framework版本的问题。…

avalonia android TextBox多行模式下回车会关闭输入法问题

参考:https://github.com/AvaloniaUI/Avalonia/issues/19220 设置一下就行了。TextInputOptions.SetMultiline(textBox, true); TextInputOptions.SetReturnKeyType(textBox, TextInputReturnKeyType.Return);

每周读书与学习-初识JMeter 元件(二)

每周读书与学习是由清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书的作者推出,分享作者多年的IT从业经历,希望对很多计算机科学技术IT类专业毕业生以及IT从业者有所帮助。 1、前置处理器 在Jmeter…

深入解析:【Spring 全家桶】Spring MVC 快速入门,开始web 更好上手(下篇) , 万字解析, 建议收藏 ! ! !

深入解析:【Spring 全家桶】Spring MVC 快速入门,开始web 更好上手(下篇) , 万字解析, 建议收藏 ! ! !2025-09-22 14:10 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wr…

client-go限速之QPS、Burst 和 RateLimiter

QPS、Burst这两个是rest.Config里的配置,由ctrl.GetConfigOrDie()获得 QPS、Burst的默认值为: k8s.io/client-go@v0.25.0/rest/config.go1 const ( 2 DefaultQPS float32 = 5.0 3 DefaultBurst int = …

三度蝉联Gartner SASE领导者:唯一厂商的技术实力解析

帕洛阿尔托网络凭借Prisma SASE平台第三次获评Gartner SASE魔力象限领导者,该平台集成AI驱动的安全与网络能力,提供零信任访问、多云高可用架构及5倍应用性能提升,为企业提供全球规模的安全连接解决方案。2025年Gar…

水水水 || CSP-S 2025 初赛

95.5pts.初赛随便玩玩。 已严肃完成今日「You have no egg!!!」大学习。Day -1 甚至没有 Day -1.Day 0 只打 S,所以上午没事,摆摆摆。 J 填程最后一题黑题弱化版这么恐怖吗,还是个交互题。 下午出发,结果车上上来一…

python实现网站登录会话脚本 - wanghongwei

# -*- coding: utf-8 -*- import os import requests from bs4 import BeautifulSoupdef login(username, password):"""Args:username: 用户名password: 密码Returns:session: 登录后的会话对象"…

HCM 性能优化函数

HR_INITIALIZE_BUFFER 功能:为特定员工(通过参数 pernr 指定)初始化人事数据缓冲区。作用机制: 加载该员工的主数据(如组织分配、工资信息等)到内存缓冲区中,后续访问同一员工数据时直接从内存读取,避免重复查…

Nginx配置里alias和root的区别

我们用一种非常容易理解的方式来解释 alias 和 root 的区别。 核心比喻:问路 想象一下你在问路:root 就像告诉你一个「大本营」的地址alias 就像给你一个「精确的目的地」地址1. root 指令:告诉你大本营在哪里 工作…