从客户端WebAPI视角下解读前端学习

API

应用程序接口(API,Application Programming Interface)是基于编程语言构建的结构,使开发人员更容易地创建复杂的功能。它们抽象了复杂的代码,并提供一些简单的接口规则直接使用。

 JavaScript VS 客户端 API VS 客户端 API VS JavaScript 库 VS JavaScript 库

  • JavaScript——一种内置于浏览器的高级脚本语言,你可以用来实现 Web 页面/应用中的功能。注意 JavaScript 也可用于其他像 Node 这样的编程环境。但现在你不必考虑这些。
  • 客户端 API — 内置于浏览器的结构程序,位于 JavaScript 语言顶部,使你可以更容易的实现功能。
  • 客户端 API — 置于第三方普通的结构程序(例如 Twitter,Facebook),使你可以在自己的 Web 页面中使用那些平台的某些功能(例如在你的 Web 页面显示最新的 Tweets)。
  • JavaScript 库 — 通常是包含具有特定功能的一个或多个 JavaScript 文件,把这些文件关联到你的 Web 页以快速或授权编写常见的功能。例如包含 jQuery 和 Mootools
  • JavaScript 库 — 从库开始的下一步,JavaScript 框架视图把 HTML、CSS、JavaScript 和其他安装的技术打包在一起,然后用来从头编写一个完整的 Web 应用。

 常见浏览器API

  • 操作文档的 API(控制浏览器视图图显示内容)内置于浏览器中。最明显的例子是DOM(文档对象模型)API,它允许你操作 HTML 和 CSS — 创建、移除以及修改 HTML,动态地将新样式应用到你的页面,等等。每当你看到一个弹出窗口出现在一个页面上,或者显示一些新的内容时,这都是 DOM 的行为。你可以在在Manipulating documents中找到关于这些类型的 API 的更多信息。
  • 从服务器获取数据的 API (数据更新前后端交互)用于更新网页的一小部分是相当好用的。这个看似很小的细节能对网站的性能和行为产生巨大的影响 — 如果你只是更新一个股票列表或者一些可用的新故事而不需要从服务器重新加载整个页面将使网站或应用程序感觉更加敏感和“活泼”。使这成为可能的 API 包括XMLHttpRequest和Fetch API。你也可能会遇到描述这种技术的术语Ajax。你可以在Fetching data from the server找到关于类似的 API 的更多信息。

          WebGIS下——焕新-CSDN博客

  • 用于绘制和操作图形的 API(绘图Canvas->WebGL,2D 3D)【Three.js/Cesium.js/图形学】目前已被浏览器广泛支持 — 最流行的是允许你以编程方式更新包含在 HTML <canvas> 元素中的像素数据以创建 2D 和 3D 场景的Canvas和WebGL。例如,你可以绘制矩形或圆形等形状,将图像导入到画布上,然后使用 Canvas API 对其应用滤镜(如棕褐色滤镜或灰度滤镜),或使用 WebGL 创建具有光照和纹理的复杂 3D 场景。这些 API 经常与用于创建动画循环的 API(例如window.requestAnimationFrame())和其他 API 一起不断更新诸如动画和游戏之类的场景。

            WebGL入门前三节(附源码和学习建议)_webgl 入门代码-CSDN博客

            现代计算机图形学学习思维导图(更新至12节Geometry)_-博客

             http://t.csdnimg.cn/gshUp

  • 音频和视频 API (视频GIS虚实融合【介入不多】)例如 HTMLMediaElement、Web Audio API 和 WebRTC 允许你使用多媒体来做一些非常有趣的事情,比如创建用于播放音频和视频的自定义 UI 控件,显示字幕字幕和你的视频,从网络摄像机抓取视频,通过画布操纵(见上),或在网络会议中显示在别人的电脑上,或者添加效果到音轨(如增益、失真、平移等) 。
  • 设备 API【介入不多】基本上是以对网络应用程序有用的方式操作和检索现代设备硬件中的数据的 API。我们已经讨论过访问设备位置数据的地理定位 API因此你可以在地图上标注你的位置。其他示例还包括通过系统通知(参见Notifications API)或振动硬件(参见Vibration API)告诉用户 Web 应用程序有用的更新可用。
  • 客户端存储 API【待学习】在 Web 浏览器中的使用变得越来越普遍 - 如果你想创建一个应用程序来保存页面加载之间的状态,甚至让设备在处于脱机状态时可用,那么在客户端存储数据将会是非常有用的。例如使用Web Storage API的简单的键 - 值存储以及使用IndexedDB API的更复杂的表格数据存储。

第三方API 

地图相关:openlayer、leaflets、ArcGIS API for JS、高德、腾讯、百度...

API共性

可识别的入口点
  • 文档对象模型 (DOM) API 有一个更简单的入口点 —它的功能往往被发现挂在 Document 对象,或任何你想影响的 HTML 元素的实例,例如:
var em = document.createElement("em"); // create a new em element
var para = document.querySelector("p"); // reference an existing p element
em.textContent = "Hello there!"; // give em some text content
para.appendChild(em); // embed em inside para
  • 其他 API 具有稍微复杂的入口点,通常涉及为要编写的 API 代码创建特定的上下文。例如,Canvas API 的上下文对象是通过获取要绘制的 <canvas> 元素的引用来创建的,然后调用它的HTMLCanvasElement.getContext()方法:
var canvas = document.querySelector("canvas");
var ctx = canvas.getContext("2d");
  • 然后,我们想通过调用内容对象 (它是CanvasRenderingContext2D的一个实例) 的属性和方法来实现我们想要对画布进行的任何操作,例如:
var requestURL =
  "https://mdn.github.io/learning-area/javascript/oojs/json/superheroes.json";
var request = new XMLHttpRequest();
request.open("GET", requestURL);
request.responseType = "json";
request.send();

request.onload = function () {
  var superHeroes = request.response;
  populateHeader(superHeroes);
  showHeroes(superHeroes);
};

用事件处理状态的变化 

状态机,Vue框架设计data响应数据(数据驱动视图)、VueX管理状态(说白了就是数据)、promise中状态改变(pending->fulfill/rejected)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Buffer

Buffer 概念 在Node.js中&#xff0c;Buffer是一个非常重要的内置全局对象&#xff0c;Node.js是基于Chrome V8引擎构建的&#xff0c;V8引擎本身不支持处理二进制数据&#xff0c;因此Node.js引入Buffer来弥补这一不足&#xff0c;Buffer中文译为【缓冲区】&#xff0c;是一…

视觉系统辅助引导在激光导航AGV中应用

agv 在全球经济步入“寒冬”的大背景下&#xff0c;大量传统制造业企业开始谋划转变。通过引入AGV系统提升厂内物流效率、降低运营成本&#xff0c;已经成为制造业升级的趋势之一。 AGV是移动机器人的一个重要分支&#xff0c;具有并行作业、自动化、智能化和柔性化等优势&…

centos8 中文打印报错,解决

sudo yum install -y glibc-locale-source sudo localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 sudo yum install -y fontconfig

入门Consul注册、配置中心(代码演示)

1、安装与使用 2、注册服务到consul 3、调用consul上注册的服务 4、配置中心 1、安装与使用 官网地址&#xff1a;Install | Consul | HashiCorp Developer 下载对应的系统 解压缩后文件 打开命令行运行 consul.exe agent -dev 即可运行 可以编写一个bat脚本每次运行ba…

bdcn手顺

GitHub链接 https://github.com/pkuCactus/BDCN 环境配置(Prerequisites) Python 3.8 contourpy1.1.1 cycler0.12.1 filelock3.14.0 fonttools4.53.0 fsspec2024.6.0 importlib_resources6.4.0 intel-openmp2021.4.0 Jinja23.1.4 kiwisolver1.4.5 Mark…

扩展方块加载动画

效果图: 完整代码: <!DOCTYPE html> <html> <head><meta charset="UTF-8" /><title>扩展方块加载动画</title><style type="text/css">body {background: #ECF0F1;display: flex;justify-content: center;al…

mysql-community-libs-5.7.44-1.el7.x86_64.rpm 的公钥尚未安装

在 CentOS 或 RHEL 系统上安装 RPM 包时&#xff0c;如果遇到“公钥尚未安装”的问题&#xff0c;通常是因为系统没有导入相应的 GPG 公钥。MySQL 官方提供了一个 GPG 公钥&#xff0c;用于验证 RPM 包的签名。 以下是解决该问题的步骤&#xff1a; 下载并导入 MySQL 官方的 GP…

跨境电商中的IP隔离是什么?怎么做?

一、IP地址隔离的概念和原理 当我们谈论 IP 地址隔离时&#xff0c;我们实际上是在讨论一种网络安全策略&#xff0c;旨在通过技术手段将网络划分为不同的区域或子网&#xff0c;每个区域或子网都有自己独特的 IP 地址范围。这种划分使网络管理员可以更精细地控制哪些设备或用…

shell条件测试和if语句

“C:\Users\Jessica\Desktop\6.12.assets\image-20240612094159578.png”# shell条件测试和if语句 一、条件测试 1、$? 返回码 判断命令或者脚本是否执行成功&#xff08;最近的一条&#xff09; 0 true 为真就是成功 成立 非0 false 失败或者异常 2、test命令 可以进行…

Qt程序打包成单个exe文件

文章目录 0. 准备工作1. 使用 windeployqt 提取必要的动态链接库和资源文件1.1 操作步骤1.2 补充 2. 使用 Enigma Virtual Box将文件夹打包成单个exe2.1 操作步骤 0. 准备工作 Qt程序打包用到的工具有&#xff1a; windeployqt &#xff1a;安装Qt时自带Enigma Virtual Box 下…

探索Facebook对世界各地文化的影响

随着数字化时代的到来&#xff0c;社交媒体已成为连接世界各地人们的重要平台之一。而在这个领域的巨头之一&#xff0c;Facebook不仅是人们沟通交流的场所&#xff0c;更是一座桥梁&#xff0c;将不同地域、文化的人们联系在一起。本文将探索Facebook对世界各地文化的影响&…

Alienware外星人X17R2 原装Win11系统镜像下载 带SupportAssist OS Recovery一键恢复

装后恢复到您开箱的体验界面&#xff0c;包括所有原机所有驱动AWCC、Mydell、office、mcafee等所有预装软件。 最适合您电脑的系统&#xff0c;经厂家手调试最佳状态&#xff0c;性能与功耗直接拉满&#xff0c;体验最原汁原味的系统。 原厂系统下载网址&#xff1a;http://w…

Ecovadis认证咨询公司丨ecovadis认证对化学工业产品管理要求

EcoVadis是世界上最值得信赖的全球供应链业务可持续性评级、暂能和协作绩效改进工具提供商。在强大的技术平台和全球领域专家团队的支持下&#xff0c;EcoVadis易于使用和可操作的可持续性记分卡提供了对200多个采购类别和160多个国家/地区的环境、社会和道德风险的详细洞察。 …

一个小的画布Canvas页面,记录点的轨迹

Hello大家好&#xff0c;好久没有更新了&#xff0c;最近在忙一些其他的事&#xff0c;今天说一下画布canvas&#xff0c;下面是我的代码&#xff0c;实现了一个点从画布的&#xff08;0,0&#xff09;到&#xff08;canvas.width&#xff0c;canvas.height&#xff09;的一个实…

【iOS】UI学习——界面切换

界面切换 push和poppresent和dismiss示例程序 push和pop 在 Objective-C 中,pop 和 push 通常是与 UINavigationController 一起使用的方法,用于控制导航栈中视图控制器的跳转和回退。 push 和 pop 通常成对使用,用于实现导航栈的前进和后退功能。当用户进入新的视图控制器时…

一种新的一维时间序列信号盲解卷积算法(以旋转机械故障诊断为例,MATLAB环境)

一种新的一维时间序列信号盲解卷积算法&#xff08;以旋转机械故障诊断为例&#xff0c;MATLAB环境&#xff09;&#xff0c;可作为深度学习信号前处理过程&#xff0c;水个SCI不是问题。 机械设备的状态信号中往往蕴含着大量的设备异常信息。如何从繁多的机械状态信号中提取足…

C++ 10 之 引用

c10引用.cpp #include <iostream>using namespace std;int main() {// 引用的语法&#xff1a;类型 &别名 原名// int a 10;// int &b a; // 此时a,b指向同一块内存// cout << "a: " << a << endl;// cout << "b: &…

【机器学习】GANs网络在图像和视频技术中的应用前景

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 目录 1. &#x1f525;引言 背景介绍 研究意义 2. &#x1f388;GANs的基本概念和工作原理 生成对抗网络简介 工作原理 3. &#x1f916;GANs在图像生成中的应用 图像超分辨率 工作原理 图像去噪 工作原理 图…

java基于Vue+Spring boot前后端分离架构开发的一套UWB技术高精度定位系统源码

java基于VueSpring boot前后端分离架构开发的一套UWB技术高精度定位系统源码 系统采用UWB高精度定位技术&#xff0c;可实现厘米级别定位。UWB作为一种高速率、低功耗、高容量的新兴无线局域定位技术&#xff0c;目前应用主要聚焦在室内外精确定位。在工业自动化、物流仓储、电…

每日5题Day22 - LeetCode 106 - 110

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;106. 从中序与后序遍历序列构造二叉树 - 力扣&#xff08;LeetCode&#xff09; class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) {…