WebSocket 消息构建器 - 编辑并发送文本/二进制帧
连接到 WebSocket 端点,自定义消息内容(JSON、文本、ArrayBuffer)并发送,查看响应。
UD5工具箱
交互式学习 AbortController 如何取消正在进行的 Fetch 请求。
涵盖基础用法、并发管理、竞速模式与超时控制四大场景。
// 1. 创建 AbortController 实例 const controller = new AbortController(); // 2. 将 signal 传递给 fetch fetch('/api/data', { signal: controller.signal }).then(res => res.json()) .then(data => console.log(data)) .catch(err => { if (err.name === 'AbortError') { console.log('请求已取消'); } }); // 3. 调用 abort() 取消请求 controller.abort();
同一个 AbortController 的 signal 可以同时传递给多个 fetch 请求,
调用一次 abort() 即可取消所有关联请求。上面每个任务使用独立的 Controller,实现独立取消。
同时发起多个延迟不同的请求,第一个完成后自动取消其余请求——这是 AbortController 的经典应用场景。
使用 setTimeout + AbortController 实现请求超时自动取消。
// 创建实例 const ac = new AbortController(); // 获取 signal const signal = ac.signal; // 检查是否已中止 console.log(signal.aborted); // false // 监听 abort 事件 signal.addEventListener('abort', () => { console.log('被取消了!'); }); // 取消操作 ac.abort('可选原因'); // 可传递 reason // abort() 后 signal.aborted === true // 一个 AbortController 只能使用一次
signal 属性与目标操作关联,调用 abort() 方法即可触发取消。
它是处理请求取消、避免资源浪费的标准方式。
error.name === 'AbortError'。AbortError 是 DOMException 的一种,
专门用于标识因 AbortController 取消而终止的操作。建议始终区分 AbortError 和其他网络错误。
abort(),其 signal.aborted 变为 true 且无法重置。
如果需要发起新请求,必须创建新的 AbortController 实例。但同一个 signal 可以同时传给多个请求。
addEventListener 的信号绑定、
ReadableStream、WritableStream、以及任何支持 signal 选项的异步操作。
它正成为 Web 平台上通用的取消机制。
abort(),
可以防止组件卸载后仍然更新状态导致的内存泄漏。这是 React 官方推荐的最佳实践。
所有"模拟请求"均使用真实 AbortController + Promise 实现,无需网络即可演示。 切换至"真实请求"模式将使用实际 Fetch API 到目标 URL。
连接到 WebSocket 端点,自定义消息内容(JSON、文本、ArrayBuffer)并发送,查看响应。
实时显示当前网络连接状态,监听online/offline事件,帮助用户判断断网原因。
输入源页和引用页URL,构造Webmention请求通知被引用页面,演示独立博客协议。
拖拽改变一个div的大小,通过ResizeObserver API实时显示其新的宽度和高度。
解析Motorola S-Record或Intel HEX格式的固件文件,提取显示原始数据块。
直观拖拽曲线控制点,生成CSS transition/animation的cubic-bezier()值,并即时播放动画效果预览。
检测页面touchstart和wheel事件是否使用passive:true,避免移动端滚动延迟。
可视化调整cubic-bezier和steps()缓动,并可实时看到动画球左右移动。
尝试将目标 URL 加载到 iframe 中,检测是否缺少点击劫持防护头,并展示风险。
输入WebSocket服务地址,建立连接,发送和接收消息,方便调试实时通信应用。
输入可能的攻击向量,选择不同的转义或过滤策略,实时查看是否被安全处理,教育安全开发。
输入颜色值查找对应的CSS颜色名称,或浏览所有命名颜色及其色值,提升设计效率。
检查XML的格式正确性,报告错误的标签闭合和属性缺失。
通过加载测试广告脚本或元素来检测浏览器是否启用广告拦截插件,并展示检测原理。
配置WebSocket地址,模拟多个并发连接,发送自定义消息并记录响应延迟。
调节采样频率,观察对正弦波的离散采样和重建效果,演示欠采样导致的频率混叠。
列出当前页面加载的所有第三方域名请求,并演示如何通过 CSP 或浏览器扩展拦截。
向指定 URL 发送不同 HTTP 方法的请求,显示响应状态码、头部和主体,学习 RESTful API。
模拟调用地理位置、通知、摄像头等 API 时的权限请求流程,查看权限状态变化。
粘贴 cURL 命令,自动解析参数、头部和数据,生成对应的 Fetch API JavaScript 代码。
输入服务地址与方法,构造 gRPC-Web 请求,查看二进制帧与反序列化后的响应消息。
构建带有自定义头和方法复杂跨域请求,检查预检与响应。
手动输入多个请求的起止时间,绘制并发请求时序瀑布图,模拟Web性能优化。
上传HTTP Archive格式文件,生成请求瀑布图与状态统计,深入了解网页加载细节。
粘贴cURL命令,自动转换为原生JavaScript Fetch或Axios代码,含请求头与体,提升调试效率。
演示Service Worker或简单代理拦截fetch请求并返回自定义JSON数据。
手动构建HTTP请求,选择方法,填写头和主体,发送并查看完整响应。