十个非常实用的 Web API

八个鲜为人知但很实用的Web API 在 Web API 中,有非常有用的对象、属性和函数可用于执行小到访问 DOM 这样的小任务,大到处理音频、视频这样的复杂任务。常见的 API 有 Canvas、Web Worker、History、Fetch 等。下面就来看一些不常见但很实用的 Web API。... 阅读详情

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

JavaScript中有些API可能使用率比较低,下面我们逐一介绍它们的用法和使用场景。

至于标题,主要是想让你进来看看,兄弟们别打我!

Blob API

Blob API 用于处理二进制数据,可以方便地将数据转换为Blob对象或从Blob对象读取数据。

// 创建一个Blob对象
const myBlob = new Blob(["Hello, world!"], { type: "text/plain" });
// 读取Blob对象的数据
const reader = new FileReader();
reader.addEventListener("loadend", () => {
 console.log(reader.result);
});
reader.readAsText(myBlob);

使用场景:在Web应用中,可能需要上传或下载二进制文件,使用Blob API可以方便地处理这些数据。

WeakSet

WeakSet 类似于Set,但可以存储弱引用的对象。这意味着,如果没有其他引用指向一个对象,那么这个对象可以被垃圾回收器回收,而不需要手动从WeakSet中删除。

const myWeakSet = new WeakSet();
const obj1 = {};
const obj2 = {};
myWeakSet.add(obj1);
myWeakSet.add(obj2);
console.log(myWeakSet.has(obj1)); // true
obj1 = null;
console.log(myWeakSet.has(obj1)); // false

使用场景:在某些情况下,可能需要存储一些临时的对象,但又不希望这些对象占用太多的内存。使用WeakSet可以方便地管理这些对象。

TextEncoder 和 TextDecoder

TextEncoder 和 TextDecoder 用于处理字符串和字节序列之间的转换。它们可以方便地将字符串编码为字节序列或将字节序列解码为字符串。

const encoder = new TextEncoder();
const decoder = new TextDecoder();
const myString = "Hello, world!";
const myBuffer = encoder.encode(myString);
console.log(myBuffer); // Uint8Array(13) [72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33]
const decodedString = decoder.decode(myBuffer);
console.log(decodedString); // "Hello, world!"

使用场景:在Web应用中,可能需要将字符串转换为二进制数据,或将二进制数据转换为字符串。使用TextEncoder和TextDecoder可以方便地进行这些转换。

Proxy API

Proxy API 可以用于创建代理对象,可以拦截对象属性的读取、赋值等操作。这个功能可以用于实现元编程、数据劫持等功能。

const myObject = {
 name: "John",
 age: 30,
};
const myProxy = new Proxy(myObject, {
 get(target, property) {
 console.log(`Getting property ${property}`);
 return target[property];
 },
 set(target, property, value) {
 console.log(`Setting property ${property} to ${value}`);
 target[property] = value;
 },
});
console.log(myProxy.name); // "John"
myProxy.age = 31; // Setting property age to 31

使用场景:在某些情况下,可能需要拦截对象属性的读取、赋值等操作,以实现更高级的功能。使用Proxy API可以方便地实现这些功能。

Object.entries() 和 Object.values()

Object.entries() 用于获取对象的可枚举属性和值的数组,Object.values() 用于获取对象的可枚举属性值的数组。

const myObject = {
 name: "John",
 age: 30,
};
console.log(Object.entries(myObject)); // [["name", "John"], ["age", 30]]
console.log(Object.values(myObject)); // ["John", 30]

使用场景:在某些情况下,可能需要获取对象的可枚举属性或属性值。使用Object.entries()和Object.values()可以方便地实现这些功能。

IntersectionObserver

IntersectionObserver 可以用于检测元素是否进入视口,可以用于实现无限滚动、懒加载等功能。

const myObserver = new IntersectionObserver((entries, observer) => {
 entries.forEach((entry) => {
 if (entry.isIntersecting) {
 console.log(`${entry.target.id} is now visible`);
 observer.unobserve(entry.target);
 }
 });
});
const myElement = document.getElementById("myElement");
myObserver.observe(myElement);

使用场景:在Web应用中,可能需要实现无限滚动、懒加载等功能,使用IntersectionObserver可以方便地实现这些功能。

Symbol

Symbol 可以用于创建唯一标识符,可以用于定义对象的私有属性或方法。

const mySymbol = Symbol("mySymbol");
const myObject = {
 [mySymbol]: "This is a private property",
 publicProperty: "This is a public property",
};
console.log(myObject[mySymbol]); // "This is a private property"
console.log(myObject.publicProperty); // "This is a public property"

使用场景:在某些情况下,可能需要定义对象的私有属性或方法,使用Symbol可以方便地实现这些功能。

Reflect API

Reflect API 可以用于实现元编程,例如动态调用对象的方法或构造函数。

class MyClass {
 constructor(value) {
 this.value = value;
 }
 getValue() {
 return this.value;
 }
}
const myObject = Reflect.construct(MyClass, ["Hello, world!"]);
const myMethod = Reflect.get(myObject, "getValue");
const myValue = myMethod.call(myObject);
console.log(myValue); // "Hello, world!"

使用场景:在某些情况下,可能需要动态调用对象的方法或构造函数,使用Reflect API可以方便地实现这些功能。

Generator API

Generator API 可以用于生成迭代器,可以用于实现异步操作或惰性计算。

function* myGenerator() {
 yield "Hello";
 yield "world";
 yield "!";
}
const myIterator = myGenerator();
console.log(myIterator.next().value); // "Hello"
console.log(myIterator.next().value); // "world"
console.log(myIterator.next().value); // "!"

使用场景:在某些情况下,可能需要实现异步操作或惰性计算,使用Generator API可以方便地实现这些功能。

Web Workers

Web Workers 可以用于在后台线程中执行JavaScript代码,可以用于提高性能或实现复杂的计算。

// main.js
const myWorker = new Worker("worker.js");
myWorker.postMessage("Hello, worker!");
myWorker.onmessage = (event) => {
 console.log(`Message received from worker: ${event.data}`);
};
// worker.js
onmessage = (event) => {
 console.log(`Message received in worker: ${event.data}`);
 postMessage("Hello, main!");
};

使用场景:在Web应用中,可能需要处理大量计算密集型任务或执行长时间运行的操作,使用Web Workers可以提高性能或避免阻塞用户界面。

AudioContext

AudioContext 可以用于处理音频,可以用于实现音频播放、音效处理等功能。

const audioContext = new AudioContext();
fetch("https://example.com/audio.mp3")
 .then((response) => response.arrayBuffer())
 .then((arrayBuffer) => audioContext.decodeAudioData(arrayBuffer))
 .then((audioBuffer) => {
 const source = audioContext.createBufferSource();
 source.buffer = audioBuffer;
 source.connect(audioContext.destination);
 source.start();
 });

使用场景:在Web应用中,可能需要实现音频播放、音效处理等功能,使用AudioContext可以方便地实现这些功能。

总结

以上Web API和它们的使用场景,这些API可以帮助我们更方便地实现Web应用的各种功能。当然,除了这些API之外,还有很多其他有用的API和工具,建议大家多多探索,以便更好地应对Web开发的各种挑战。

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

推荐阅读  点击标题可跳转

1、Python 项目工程化最佳实践

2、Python 可以比 C 还要快!

3、streamlit,一个超强的 Python 库

4、豆瓣8.9分的C++经典之作,免费送!

5、Python 3.12 版本有什么变化?

最近我开了一家淘宝店,名字叫【打破壁垒】,主打程序开发相关付费素材、工具的共享类商品,帮助大家降低试错和使用成本。欢迎大家关注。

8e9951e333081f70d1cf5571cdb7271a.jpeg

长按扫描下方二维码,然后点击页面中的【打开淘宝】,即可进入店铺:

5ab0570851087ffca7ad17ded38c9fde.png

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

00d5735458157bb004e2fb1159a4cf3c.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

Web API使用教程 是什么     Web Api,网络应用程序接口。它包含了广泛的功能,网络应用通过API接口,可以实现存储服务、消息服务、计算服务的能力,利用这些能力可以进行开发出强大功能的web应用。简单来说,就是一个接口,比如说,我们要做前后端分离的项目,前端和后端通过url连接,但是我们如何知道后端的数据是否通了,返回的数据是否正确,于是我们通过这个接口知道。 相似的技术     postma 阅读详情

相关推荐

Web API和Web Services的区分

举例说明,当我们需要出差的时候,要在携程App订购机票,我们会输入启程时间、返程时间、舱位选择等相关信息,单击搜索,系统会显示多家航空公司的机票张数和价格等信息,此时携程 App 就在后台与多家航空公司的 API进行交互,从而访问航空公司的数据、因此,Web API可以看作促进客户端机器与web服务器之间通信的接口。相比于XML,JSON是一种轻量级的数据交换格式,在Web Services中传输更快。灵活性:Web API的设计更加灵活,没有固定的规范,开发者可以根据自己的需求设计API的结构和行为。

奇峰卧虎 2476

10个不那么知名但很强大的Web API

点击上方 "终端研发部"关注,星标或置顶一起成长作者 | Tapas Adhikary译者 | 平川 策划 | 小智在本文中,我将介绍 10 个不那么流行的 W...

这个时代,作为程序员可能要学习小程序 456

什么是Web?Web Service、Web API傻傻分不清楚?

前言 分享一篇我在edx课程中看到的一篇英文文章,这篇文章详细阐述了Web、Web Server的含义,然后进一步介绍什么是Web API、Web Server、SOAP以及RESTFUL Web API的一些基础概念。本文根据个人的理解对原文进行了翻译,限于我的知识水平,若有翻译不到位的地方还请批评指正。 正文 Web究竟是什么意思? 如今,网络十分普及。运行在不同电脑上的软件可以互相“对话”。软件们进行交流时所使用的语言称之为“协议”(protocols)。比如你可能听说过的TCP、HTTP以及

Read by heart 2738

分享11个高级前端开发工程师都应该掌握的Web API

英文 | https://javascript.plainenglish.io/10-web-apis-every-senior-web-engineer-should-master-8ef3198368c2JavaScript 中的某些 API 的使用率可能相对较低。下面我们一一介绍它们的用法和使用场景。01、Blob APIBlob API用于处理二进制数据,可以轻松地将数据转换为Blob对象...

前端达人 164

【Web前端】Web API:构建Web应用核心

API(应用程序编程接口)是一组定义了软件组件之间如何交互的规则和协议。它允许一个程序调用另一个程序的功能,而不用了解其内部实现细节。Web 开发中,API 通常用于实现前端与后端之间的通信。除了内置的 DOM 事件外,开发者还可以创建和触发自定义事件,以便在应用程序内部传递信息。// 创建一个新的自定义事件// 添加自定义事件监听器');});// 模拟数据加载并触发自定义事件// 数据加载完成后触发自定义事件}, 2000);

m0_54851477的博客 1232

22、Java API中的十个实用类

本文详细介绍了Java API中的十个实用类,包括Applet、ArrayList、File、Integer、Math、NumberFormat、Scanner、String、StringTokenizer和System。通过示例代码和方法解析,帮助开发者更好地理解和应用这些类,提升编程效率和代码质量。

ff678的博客 93

RESTful API的十个最佳实践

来源http://www.open-open.com/lib/view/open1435735457357.html WebAPI在过去几年里非常的盛行,我们很多以往的技术手段都慢慢的转换为使用WebAPI来开发,因为它的语法简单规范化,以及轻量级等特点,这种方式收到了广泛的推崇。 通常我们使用RESTFul(Representational State Transfer)

shanshan_blog的博客 6967

使用实用的Web API规范的JavaScript

Web Storage API允许开发人员在浏览器中存储和检索数据。在现代Web开发中,Web API(应用程序编程接口)扮演着至关重要的角色。本文将介绍一些实用的Web API规范,并提供相应的JavaScript代码示例。Notifications API允许Web应用程序在用户的桌面上显示通知消息。通过使用该API,开发人员可以向用户发送重要的实时信息。这些实用的Web API规范为开发人员提供了丰富的功能和交互性。通过合理利用这些API,您可以创建出更加强大和交互性的Web应用程序。

EuForth的博客 50

Web API 实用案例

01-window对象 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> &lt

WangZhang_521的博客 3101

Silly Tavern(酒馆)AI 角色扮演下载与安装教程(Windows本地部署)

SillyTavern是一款开源AI角色扮演前端工具,支持沉浸式对话和长期角色互动。本文详细介绍了在Windows系统F盘部署SillyTavern的完整流程,包括下载项目、安装Node.js和Git环境、配置路径、启动服务等关键步骤,并特别说明非系统盘路径可能遇到的npm安装问题及解决方法。成功启动后,用户可通过浏览器访问本地地址使用该工具进行AI角色扮演互动。

Tan3851的博客 1万+

FreeRTOS系统CPU使用率统计

操作系统中CPU使用率是在软件架构设计中必须要考虑的一个重要性能指标。它直接影响到程序的执行时间以及优先级更高的任务能否实时响应的问题。而CPU使用率也不能过低,避免资源浪费。

灵哎惹,凌沃敏的博客 1377

10个不那么知名但很实用的Web API

作者 | Tapas Adhikary译者 | 平川策划 | 小智在本文中,我将介绍 10 个不那么流行的 Web API。不那么流行并不意味着它们没有用处。你可以在项目的各种用例中使用...

Yvette Lau的专栏 350

CarSim转向控制对比指南:开环扭矩控制vs转角控制(附Simulink连接示例)

本文深入对比了CarSim中车轮转角控制与开环扭矩控制的核心原理与适用场景。开环扭矩控制能激活完整的转向系统动力学,更适用于EPS控制策略开发与驾驶员在环仿真等对真实性要求高的场景。文章提供了详细的Simulink接口配置步骤与连接示例,为车辆动力学仿真工程师提供了清晰的决策与实操指南。

weixin_29199873的博客 477

Web API基础

ASP.NET Core Web API提供了强大的框架来构建RESTful服务。本文将系统介绍Web API的核心概念、最佳实践和实用技巧,帮助开发者快速掌握API开发技能。

冰茶的博客 1373

RV1126开发板性能实测:网络、温度与功耗全解析

本文对RV1126开发板进行了全面的性能实测,重点分析了网络性能、温度表现与功耗特性。测试发现UDP带宽可达500Mbps,但TCP性能受限于协议栈;散热设计对持续性能至关重要,大板子在AI推理和视频推流中表现更稳定。为嵌入式开发者提供了真实的选型参考和优化建议。

d3e4f的博客 260

基于改进YOLOv5的小目标检测 | 添加CBAM注意机制 + 更换Neck网络之BiFPN + 增加高分辨率检测头

本文针对图像中小目标难以检测的问题,提出了一种基于YOLOv5的改进模型。在主干网络中,加入CBAM注意力模块增强网络特征提取能力;在颈部网络部分,使用BiFPN结构替换PANet结构,强化底层特征利用;在检测头部分,增加高分辨率检测头,改善对于微小目标的检测能力。本文算法在无人机数据集VisDrone2019数据集上进行了多次对比实验,结果表明本文算法可以有效地检测小目标。🌈

小哥谈 2934

可能是最全的实用API接口汇总

下面列举了国内的常用、实用的API接口,按照 笔记、出行、词典、电商、地图、电影、即时通讯、开发者网站、快递查询、旅游、社交、视频、天气、团队协作、图片与图像处理、外卖、消息推送、音乐、云、语义识别、语音识别、杂志、综合 进行了如下分类。 笔记 OneNote- OneNote支持获取,复制,创建,更新,导入与导出笔记,支持为笔记添加多媒体内容,管理权限等。提供SDK和Demo。 为知笔记-...

ruanhongbiao的专栏 6802

【光斑定位】空间激光通信、光斑定位、CCD、光斑定位——13000字

0.完整源码获得方式 订阅MATLAB/FPGA教程,免费获得教程案例以及任意2份完整源码 ----------------------------------------------------------------- 空间激光通信是指以光波作为载波进行数据传输的一种通信方式。目前,空间激光通信己成为人们关注的焦点。在空间激光通信系统中,光斑定位是是一项关键技术。 本论文首先对国内外空间激光通信系统的研究现状进行了阐述,论述了空间激光通信的理论只是,并对CCD成像原理,...

FPGA/MATLAB学习教程/源码/项目合作开发 1288

前端十大实用API深度解析

这些API不仅简化了开发流程,还提供了强大的功能,帮助开发者构建更加高效、用户友好的应用。大家快行动起来,动手尝试一下,最后希望这篇文章能帮助您更好地理解和应用这些实用的Web API。如果您有任何问题或建议,欢迎在评论区留言讨论。

Hu560231的博客 803

光学系统仿真软件:OSLO_(13).衍射光学元件设计v1

目标函数是设计DOE的关键步骤之一。目标函数可以是一个具体的光强分布,也可以是一个特定的波前形状。在仿真软件中,目标函数通常用数学表达式或数据文件来定义。假设我们需要设计一个二元相位掩模,使其在特定位置生成三个焦点。我们可以定义一个目标函数来描述这三个焦点的光强分布。# 定义目标函数"""定义一个多焦点目标函数:param x: 横坐标:param y: 纵坐标:param z1: 第一个焦点的深度:param z2: 第二个焦点的深度:param z3: 第三个焦点的深度。

kkchenjj的博客 1001

Fastgpt本地使用Docker Compose 快速部署

修改文件,并执行再执行d重起容器。具体配置,参考配置详解。可以查看日志,在启动容器后,第一次请求网页,会进行配置文件读取,可以看看有没有读取成功以及有无错误日志。进入 FastGPT 容器,可以通过ls data查看目录下是否成功挂载文件。可通过查看配置文件。可能不生效的原因挂载目录不正确配置文件不正确,日志中会提示invalid json,配置文件需要是标准的 JSON 文件。

洛阳泰山的博客 1630

Python Web 开发的十个框架

想要了解更多的python技术,欢迎加入互联网技术交流群:547147889Python 是一门动态、面向对象语言。其最初就是作为一门面向对象语言设计的,并且在后期又加入了一些更高级的特性。除了语言本身的设计目的之外,Python标准 库也是值得大家称赞的,Python甚至还自带服务器。 其它方面,Python拥有足够多的免费数据函数库、免费的Web网页模板系统、还有与Web服务 器进行交互的库...

大厂技术布道者 465

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Web开发者必知的8个超实用API

API是应用程序编程接口(Application Programming Interface)三个首字母的缩写,其提供一些有规范的软件接口,无需访问源码,开发人员即可调用。 如今,在各大网站上都会有各种各样的API,它们都在扮演着不同的角色。例如创建图表数据并且嵌入到特定的Web页面中、地图API、还有的可以在互联网上存储文件等。下面将向大家介绍8个超实用的Web API。 1.Tropo

songyux6的专栏 533

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

WEB开发者新年的十个愿望

今天看到一篇翻译的文章,内容是2012年Web程序员的十个愿望,我觉得更像是给自己定的一个目标,和大框架。我转载过来和大家分享: 译自:http://net.tutsplus.com/articles/general/ten-new-years-resolutions-every-web-developer-should-make/ 安德鲁 伯吉斯于2011年12月27日 译者:...

MisakaMikoto_0502的博客 211

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Web Service 和 Web API

Web Service 严格遵循 SOAP 协议,像一套严谨的“外交文书”系统,通过 XML 信封(SOAP Envelope)和 WSDL 契约书来确保跨语言、跨平台的绝对兼容性,但笨重缓慢;而 Web API 本质上是现代 HTTP 应用的“快递服务”,利用 GET/POST 等标准 HTTP 方法直接传输 JSON 数据,追求轻量、快速,是移动互联网时代前后端交互的主流text/xml。

weixin_46761444的博客 756

【项目推荐】基于 SpringBoot3 + Spring AI 的游泳馆管理系统:Agent + RAG + Function Calling 一次学全

它不是玩具 Demo,而是一个「业务 + AI」双主线交织的真实系统——预约业务在跑,AI 客服在旁边实时查库作答,两条线通过 Function Calling、RAG、站内消息串成一体。面试官问「你做过什么 AI 项目」时,你能从业务场景讲到架构取舍,从 RAG 切分参数讲到降级兜底——这和「我调了一下 ChatGPT 的 API」是完全不同的两个段位。项目已包含完整的建表 SQL、初始化数据、部署文档,克隆下来就能跑。获取方式:见文末说明 / 后台回复关键词获取。—— 完 ——

深耕开发,专注编程实战。分享源码解析、项目搭建、问题排查笔记,沉淀技术,持续更新。 336
上一篇: 为什么编程入门第一步是 "Hello, World!"?
下一篇: 面试官:localhost 和 127.0.0.1 的区别是什么?
codingpy
博客等级 码龄11年 1866粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值