当前位置: 首页 > news >正文

MDN-Web APIs

参考资料

文章目录

    • 简介
    • DOM API
    • XMLHttpRequest
    • Web Storage API
    • Websockets API

简介

Web APIs(Application Programming Interfaces)是用于与浏览器环境中的 Web 功能进行交互的一组接口和方法集合。通过 Web APIs,开发人员可以访问浏览器提供的功能,如操作 DOM、发送网络请求、处理用户输入等。这些 APIs 是用来构建交互性、动态性和丰富性的 Web 应用程序的重要工具。

以下是一些常见的 Web APIs:

  • DOM API:Document Object Model(DOM) API 允许开发人员操作 HTML 和 XML
    文档的结构和内容。通过 DOM,可以增删修改文档中的元素、属性和文本内容。
  • Fetch API:用于发送和接收网络请求的 Fetch API。它提供了一种现代化的方式来执行网络请求,取代了传统的XMLHttpRequest。
  • XMLHttpRequest:虽然被 Fetch API 取代,但仍然可以用来发送异步网络请求。
  • Web Storage API:用于在客户端浏览器中存储数据,包括 localStorage(持久性存储)和
    sessionStorage(会话级存储)。
  • IndexedDB API:提供了一个客户端数据库,用于在浏览器中存储大量结构化数据。
  • Geolocation API:用于获取用户设备的地理位置信息。
  • Canvas API:允许通过 JavaScript 绘制图形和图像,创建各种图形效果和动画。
  • Web Audio API:用于操作和控制音频,实现音频处理、合成和分析等功能。
  • Web Speech API:提供了语音识别和合成功能,使得浏览器可以进行语音交互。
  • Web Notifications API:用于在用户的操作系统中显示通知,用于向用户显示信息和提醒。
  • Web Workers API:允许在后台线程中执行 JavaScript 代码,提高了多线程处理的能力,从而不影响主 UI
    线程的响应性。
  • Websockets API:提供了在浏览器和服务器之间建立双向通信的方式,用于实时数据传输。

这些只是众多 Web APIs 中的一部分。使用这些 APIs,开发人员可以创建出各种各样功能丰富的 Web 应用程序,提供更好的用户体验和交互性。不同的 Web APIs 针对不同的场景和需求,开发人员可以根据自己的项目选择适合的 API 进行开发。

DOM API

DOM API(Document Object Model API)是用于操作网页文档结构和内容的一组接口和方法。通过 DOM API,开发人员可以使用 JavaScript 动态地修改、添加、删除网页元素和内容,实现交互性和动态性的网页效果。

DOM 将整个网页文档表示为一个树状结构,每个节点代表文档中的一个元素、属性、文本等。DOM API 允许开发人员访问和操作这些节点,从而实现各种操作。

以下是一些常见的 DOM API 操作示例:

  1. 选择元素
const element = document.getElementById("myElement"); // 通过 ID 获取元素
const elements = document.querySelectorAll(".myClass"); // 通过类名获取元素集合
const element = document.querySelector("p"); // 通过标签名获取第一个元素
  1. 修改内容和属性
element.textContent = "New text content"; // 修改文本内容
element.innerHTML = "<strong>Strong text</strong>"; // 修改 HTML 内容
element.setAttribute("data-id", 123); // 设置属性
  1. 创建和插入元素
const newElement = document.createElement("div"); // 创建新元素
element.appendChild(newElement); // 将新元素插入到父元素末尾
element.insertBefore(newElement, referenceElement); // 在指定元素之前插入新元素
  1. 删除元素
element.parentNode.removeChild(element); // 从父元素中移除
  1. 事件处理
element.addEventListener("click", function() {// 处理点击事件
});
  1. 样式操作
element.style.color = "red"; // 修改元素样式
element.classList.add("highlight"); // 添加 CSS 类名

XMLHttpRequest

XMLHttpRequest(XHR)是一种用于发送 HTTP 请求和接收服务器响应的 Web API。它是早期 Web 开发中主要用于进行异步通信的工具,虽然现在已被 Fetch API 替代,但了解它仍然是有益的。

使用 XMLHttpRequest,您可以在不刷新页面的情况下从服务器获取数据并更新网页内容。以下是一个简单的使用 XMLHttpRequest 发送 GET 请求的示例:

var xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.example.com/data", true); // 创建一个 GET 请求
xhr.onreadystatechange = function() {if (xhr.readyState === XMLHttpRequest.DONE) { // 请求完成if (xhr.status === 200) { // 响应成功var responseData = JSON.parse(xhr.responseText);console.log(responseData);} else {console.error("Request failed with status:", xhr.status);}}
};
xhr.send(); // 发送请求

在上面的示例中,我们创建了一个 XMLHttpRequest 实例,指定了请求方法和 URL,然后设置了 onreadystatechange 事件处理程序来监听请求状态的变化。一旦请求状态变为 DONE,我们检查响应状态码以确定请求是否成功,并处理响应数据。

XMLHttpRequest 可以用于发送各种类型的 HTTP 请求,包括 GET、POST、PUT、DELETE 等,并且可以设置请求头、处理响应数据等。然而,与 Fetch API 相比,XMLHttpRequest 在使用上更繁琐,需要手动处理状态和错误,而 Fetch API 基于 Promise 更加简洁和易于使用。如果您在现代 Web 开发中进行网络通信,建议使用 Fetch API。

Web Storage API

Web Storage API 是一组用于在客户端浏览器中存储数据的 Web API,它提供了一种在浏览器中持久性地存储键值对数据的方式,以便在不同页面和会话之间共享数据

Web Storage API 分为两种存储方式:

  • localStorage:提供了持久性的本地存储,数据会一直保存在客户端,即使浏览器关闭也不会丢失。适用于需要在多个页面之间共享数据的场景。
  • sessionStorage:提供了会话级别的本地存储,数据仅在当前会话中有效,当浏览器窗口关闭时数据将被清除。适用于在同一页面的不同部分之间共享数据。

以下是 Web Storage API 的基本用法:

// 使用localStorage存储数据
localStorage.setItem("username", "john");
const storedUsername = localStorage.getItem("username");
console.log(storedUsername); // 输出:john// 使用sessionStorage存储数据
sessionStorage.setItem("token", "abc123");
const storedToken = sessionStorage.getItem("token");
console.log(storedToken); // 输出:abc123// 移除数据
localStorage.removeItem("username");
sessionStorage.clear(); // 清空所有sessionStorage数据

需要注意的是,Web Storage API 存储的数据是以字符串形式存储的,如果需要存储对象或其他数据类型,需要进行适当的序列化和反序列化操作。

虽然 Web Storage API 提供了方便的方式来存储数据,但也要注意存储容量限制(通常为几MB)以及可能的安全性问题。敏感信息不应存储在本地存储中,以免被恶意访问。

在现代 Web 开发中,随着更多高级的数据管理工具的出现,如== IndexedDB 和客户端数据库==,您可能会根据具体需求选择更适合的数据存储方式。

Websockets API

WebSocket API 是一种在 Web 应用程序中实现双向通信的技术,允许浏览器和服务器之间建立持久的、全双工的通信连接。与传统的 HTTP 请求-响应模型不同,WebSocket 允许实时交换数据,适用于实时聊天、实时数据更新和多人协作等应用场景。

WebSocket API 提供了一种在浏览器和服务器之间传递数据的方法,数据可以是文本或二进制格式。与 HTTP 请求不同,WebSocket 连接在初始握手后保持打开状态,使得服务器和客户端可以随时向对方发送数据。

以下是一个简单的使用 WebSocket API 的示例:

// 创建 WebSocket 连接
const socket = new WebSocket("wss://example.com/socket");// 连接成功时触发
socket.onopen = function(event) {console.log("WebSocket connection opened.");socket.send("Hello, server!");
};// 接收到消息时触发
socket.onmessage = function(event) {console.log("Received message from server:", event.data);
};// 连接关闭时触发
socket.onclose = function(event) {if (event.wasClean) {console.log("WebSocket connection closed cleanly.");} else {console.error("WebSocket connection closed with error:", event.code, event.reason);}
};// 发生错误时触发
socket.onerror = function(event) {console.error("WebSocket error:", event);
};

在上面的示例中,我们首先创建了一个 WebSocket 连接,然后监听不同的事件来处理连接的状态和数据交换。当连接建立后,我们通过 send 方法向服务器发送数据,通过 onmessage 处理接收到的数据。

WebSocket API 适用于需要实时通信的应用场景,它可以在不同浏览器和服务器之间实现实时的双向数据传输。与传统的轮询或长轮询相比,WebSocket 提供了更高效、实时和低延迟的通信方式。然而,您需要注意处理连接中断、错误和安全性等问题。

相关文章:

MDN-Web APIs

参考资料 文章目录 简介DOM APIXMLHttpRequestWeb Storage APIWebsockets API 简介 Web APIs&#xff08;Application Programming Interfaces&#xff09;是用于与浏览器环境中的 Web 功能进行交互的一组接口和方法集合。通过 Web APIs&#xff0c;开发人员可以访问浏览器提…...

2023国赛数学建模C题思路分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…...

暑假集训笔记

刷题刷的好累啊...不想刷题了...然后就来写题解了... 昨天晚上打了场div2..2000来名&#xff0c;加了155分....现在rating1281...我是菜鸡..暑假之前就打到了1200分以上了&#xff0c;结果暑假一掉再掉&#xff0c;直接掉到1100了...然后我就一直压力很大....... 昨天在机房打…...

【枚举+推式子】牛客小白月赛 63 E

登录—专业IT笔试面试备考平台_牛客网 题意&#xff1a; 思路&#xff1a; 首先是个计数问题&#xff0c;考虑组合数学 组合数学就是在考虑枚举所有包含1和n的区间 这个典中典就是枚举1和n的位置然后算贡献 双指针超时&#xff0c;考虑推式子&#xff1a; Code&#xff1a…...

Android多屏幕支持-Android12

Android多屏幕支持-Android12 1、概览及相关文章2、屏幕窗口配置2.1 配置xml文件2.2 DisplayInfo#uniqueId 屏幕标识2.3 adb查看信息 3、配置文件解析3.1 xml字段读取3.2 简要时序图 4、每屏幕焦点 android12-release 1、概览及相关文章 AOSP > 文档 > 心主题 > 多屏…...

python环境下载安装教程,python运行环境怎么下载

本篇文章给大家谈谈python安装步骤以及环境变量配置&#xff0c;以及下载python需要设置环境变量吗&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 1.https://www.python.org/downloads/windows/ 下载适合自己电脑的python安装包 2.下载后安装即可 3.配置环…...

【0.2】lubancat鲁班猫4远程ubuntu22.04.2 无需任何安装

环境 lubancat4鲁班猫4 (4G0)不带emmc 系统镜像ubuntu-22.04.2-desktop-arm64-lubancat-4.img 网络环境:有线网络与本win10电脑同意环境 操作步骤ubuntu正常开机登陆用户&#xff0c;连接好网络进入设置>网络查看设备当前局域网IP 如192.168.199.159进入设置>共享>远程…...

Flutter 状态管理 Provider

状态管理必要性 Flutter基于声明式构建UI&#xff0c;原生则是命令式&#xff0c;状态管理是用于解决声明式开发带来的问题。 例&#xff1a;命令式的原生&#xff0c;数据更新需要拿到对应控件并更改其显示值&#xff1b;而声明式则需要更改数据值并通过setstate更新状态&am…...

【设计模式】观察者模式

什么是观察者模式&#xff1f; 观察者模式&#xff08;又被称为发布-订阅&#xff08;Publish/Subscribe&#xff09;模式&#xff0c;属于行为型模式的一种&#xff0c;它定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象。这个主题对象在状态…...

ORCA优化器浅析——CDXLOperator Base class for operators in a DXL tree

如上图所示&#xff0c;CDXLOperator作为Base class for operators in a DXL tree&#xff0c;其子类CDXLLogical、CDXLScalar、CDXLPhysical作为逻辑节点、物理节点和Scalar节点的DXL表示类&#xff0c;因此其包含了这些类的共同部分特性&#xff0c;比如获取其DXL节点表示的函…...

go入门实践四-go实现一个简单的tcp-socks5代理服务

文章目录 前言socks协议简介go实现一个简单的socks5代理运行与压测抓包验证 前言 SOCKS是一种网络传输协议&#xff0c;主要用于客户端与外网服务器之间通讯的中间传递。协议在应用层和传输层之间。 本文使用先了解socks协议。然后实现一个socks5的tcp代理服务端。最后&#…...

div 中元素居中的N种常用方法

本文主要记录几种常用的div盒子水平垂直都居中的方法。本文主要参考了该篇博文并实践加以记录说明以加深理解记忆 css之div盒子居中常用方法大全 本文例子使用的 html body结构下的div 盒子模型如下&#xff1a; <body><div class"container"><div c…...

Java获取指定文件夹下目录下所有视频并复制到另一个地方

import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.StandardCopyOption;public class VideoCopier {public static void main(String[] args) {// 指定源文件夹路径和目标文件夹路径String sourceFolderPath "path/to…...

windows server 2016 搭建使用 svn 服务器教程

参考教程&#xff1a; https://zhuanlan.zhihu.com/p/428552058 https://blog.csdn.net/weixin_33897722/article/details/85602029 配置环境 windows server 2016 远程服务器公网 ip 安装 SVN 服务端 下载 svn 服务端安装包&#xff1a;https://www.visualsvn.com/download…...

【Python】如何判断时间序列数据是否为平稳时间序列或非平稳时间序列?

判断时间序列数据是否为平稳时间序列或非平稳时间序列&#xff0c;通常可以通过以下方法&#xff1a; &#xff08;1&#xff09;观察时间序列数据的均值和方差是否随时间变化而发生明显的改变。若均值和方差变化明显&#xff0c;则该时间序列数据可能为非平稳时间序列&#x…...

Labview控制APx(Audio Precision)进行测试测量(六)

用 LabVIEW 驱动 VIs生成任意波形 在 APx500 应用程序中&#xff0c;默认波形类型为正弦。这是指 APx 内置的正弦发生器&#xff0c;根据信号路径设置&#xff0c;许多测量还允许其他内置波形&#xff0c;如方波&#xff0c;分裂正弦波或分裂相位&#xff0c;以及使用导入的。w…...

【Linux】网络协议总结

目录 网络协议总结 应用层 传输层 网络层 数据链路层 网络协议总结 应用层 应用层的作用&#xff1a;负责应用程序间沟通&#xff0c;完成一系列业务处理所需服务。能够根据自己的需求&#xff0c;设计对应的应用层协议。了解HTTP协议。理解DNS的原理和工作流程。 传…...

如何轻松注册企业邮箱?快速掌握超简单的注册技巧!

随着互联网的发展&#xff0c;越来越多的企业开始使用电子邮件作为通信工具。企业邮箱不仅可以提高企业的工作效率&#xff0c;还可以使企业通信更加便捷、保密性更高。那么&#xff0c;企业邮箱怎么注册申请呢&#xff1f;下面我们来详细介绍一下。 第一步&#xff1a;选择邮箱…...

【行为型设计模式】C#设计模式之观察者模式

题目&#xff1a;假设你正在开发一个简单的新闻发布系统&#xff0c;该系统允许用户订阅不同的新闻频道&#xff0c;并在有新闻发布时向订阅者发送通知。使用观察者模式设计和实现该系统。观察者模式的相关概念和定义&#xff1a; 观察者模式是一种行为设计模式&#xff0c;它定…...

《Java面向对象程序设计》学习笔记——第 8 章 设计模式

​专栏&#xff1a;《Java面向对象程序设计》学习笔记 第 8 章 设计模式 一个好的设计系统往往是易维护、易扩展、易复用的。 8.1 设计模式简介 8.1.1 什么是设计模式 一个设计模式 (pattern) 是针对某一类问题的最佳解决方案&#xff0c;而且己经被成功应用于许多系统的设…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

ubuntu22.04 安装docker 和docker-compose

首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...

软件工程 期末复习

瀑布模型&#xff1a;计划 螺旋模型&#xff1a;风险低 原型模型: 用户反馈 喷泉模型:代码复用 高内聚 低耦合&#xff1a;模块内部功能紧密 模块之间依赖程度小 高内聚&#xff1a;指的是一个模块内部的功能应该紧密相关。换句话说&#xff0c;一个模块应当只实现单一的功能…...