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

Ajax:回忆与节点

        一点回忆

        面对我的Ajax学习,实现前后端交互,最开始我采用的使用网络寻找intellij IDEA Ultimate破解方法,然后最终成功,然后按照相关教程配置java ee项目,然后中间又去配置了Tomcat服务器,然后又去学习了一点jsp以及servlet的相关知识,最终我无法实现从第一个jsp页面跳转到其他Ajax交互实现方法的jsp页面而告终。

        尽管我的第一次尝试挺轻松的,直到我不用写后端,直接把后端的jar包发给我,相应的接口文档也有介绍,只能说,当时确实被打击到了,觉得似乎前端不是很难,难度直接从100变成10,当时就给我干懵了,我前前后后用了几天配置环境等等,最后告诉我,我那些都用不上了,然后我用了二十分钟实现了需求。

        直到今天,我了解到为什么JavaScript是单线程,以及它的效率不高,还有同步等等问题,我只能说,它这个东西一点都不简单,小看它了,也是给我提了个很强烈的醒,不要失去敬畏之心。

        在我第一次验收的时候,我似乎是走歪了路,我对Ajax的重要的技术点漏了很多,然后之后又想补上漏了的知识点,然后似乎又有点偏激了,直接开始抄写文档了,学习了XMLHttpRequest(XHR)的每一个属性,标准属性与非标准属性,还有继承而来的属性,以及非继承的属性,现在想想,确实是太偏激了,应该止于了解常用的,现阶段不该太深入的,然后就是用了这么久,学习了接近一个月的在校时间,可能就是因为开学了之后浮躁了好多,然后现在我用这么久才学了一个Ajax。不过,也是长记性了,博客需要每周都写,不然容易忘记自己的阶段情况,容易堕落了,这个写博客的习惯,我觉得有必要延续到以后写工作。

然后下面就是我的Ajax笔记,作为一个节点留下为自己作为纪念。

思维导图+二维表

 

比较内容

XMLHttpRequest

jQuery

axios

是什么

Ajax 功能实现依赖的对象

一个 js 的代码库,一个轻量级的框架

一个基于 Promise 的网络请求库

有什么用

通过 HTTP 在浏览器和 web 服务器之间收发 XML 或其他数据

封装了 JavaScript 的基本内容

可以用在浏览器和 node.js 中,但是符合最新的 ES 规范

哪里用

进行前后端交互的地方

快速获取文档元素,提供漂亮的页面动态效果,创建 AJAX 无刷新网页

可以用在浏览器和 node.js 中

怎么用

写在 js 代码中,通过创建对象,设置标头,发送

针对选择器和事件处理

从浏览器创建 XHR,从 node.js 创建 http 请求

封装有什么不同

主要封装了 ES、DOM、BOM,只有很小一部分是 ajax

本质上就是 ajax,简单来说就是发送 http 请求的(GET 和 POST)

比较项目

普通文件

XML 文件

JSON 文件

是什么

计算机中用来存储和组织数据的基本单位

同样是基本单位,但是它有自己的规范要求

是基于ECMAScript的一个子集设计的,是一种开放标准的文件格式和数据交换格式

为什么

系统设置,存储任意内容

只针对规范进行存储

简洁和清晰的层次结构有效提升了网络传输效率,易于人认识,易于机器解析和生成,与服务器之间的 web 应用程序的数据交换很好

哪里使用

存储任意数据

存储指定数据,比如列表、json 字符串等等

存储指定的 JSON 结构的数据序列

怎么使用

通过记事本或其他文本编辑器

同样是通过记事本或其他文本编辑器

通过记事本或文本编辑器

JavaScript 中,同步(Synchronous)和异步(Asynchronous)是两种处理代码执行顺序的主要方式。

比较项目

同步 JavaScript

异步 JavaScript

what

前一个任务结束后再执行后一个任务,程序执行顺序与任务的排列顺序是一致同步的

不按照代码顺序执行,一个异步过程不再与原有的序列有顺序关系,程序的执行顺序与任务的排列顺序是不一致的

why

这是 js 语言自身的特定,所以他是单线程

从主线程发射一个子线程来完成任务

where

正常的嵌入 HTML 或者单独的 js 文件

同样嵌入 HTML 或者 js

how

直接嵌入到 HTML 文件中

只有在进行 Ajax 调用的意义上是异步

比价项目

阻塞

非阻塞

what

调用(函数),(函数)没有接收完数据或者没有得到结果之前,不会返回。

调用(函数),(函数)立即返回,通过select通知调用者

why

线程进入了不可执行状态,此时,CPU 不会给线程分配时间片,即线程暂停运行

不能立刻得到结果返回之前,该调用不会阻塞当前线程

where

调用者等待返回结果

调用者等待返回结果

how

常常出现在多线程编程,比如 Thread.sleep,还有 Object.wait

常常出现等待异步操作完成时保持响应,而不是阻塞整个应用程序。比如:

1.回调函数

2.Promise 对象

3.事件循环和 setTimeout

XMLHttpRequest

构造函数

实例方法

属性

事件

what

一个特殊的方法,用来实例化一个对象

XMLHttpRequest 这个类封装的方法

它是这个对象的特性或者说数据成员

一个代表性的事情

why

因为不调用构造或其他方式获得一个对象的话,什么都干不了

不能只有一个人,而没有这个人生存的方法

因为它的存在是为了更好的表示方法的状态等等

触发对象具有的事情,然后会有返回值,此时就可以更轻松的让计算机弄懂它怎么了

where

在要进行前后端交互:准备对象

对象进行操作

直接就是对象然后.属性

直接就是判断对应的事件的返回值,然后就可以了

how

var xhr = new XMLHttpRequest()

xhr.open()/xhr.send()

比如 onreadystatechange 属性,然后 xhr.onreadystatechange = function(){

if (xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200){

console.log(xhr.responseText);

}

}

比如:

function doSomething() {

if (request.readyState == 4) {

// 处理响应数据

}

}

比较方法

open

setRequestHeader

send

what

使用 XHR 对象时首先调用的方法

js 中用于设置头部信息的函数

一个用来发送 HTTP 请求的方法

why

初始化一个请求

发送 Ajax 请求前,需要先设置请求头(自定义)

设置好要发送到后端的数据,需要有发送这一步,就像发送邮件一样

where

需要一个请求的地方

在 open 方法与 send 方法之间

在你设置完你要发送的东西,以及指定好指定的发送格式以及返回格式之后

how

使用这个方法,填入对应的参数,请求方法,URL,是否异步

xhr.setRequestHearder(header, value);

header 参数是 HTTP 请求头部字段的字符串,value 参数是与 header 关联的值。

header 可以写 Content-Type 用来指定发送到服务器的数据类型;Accept:指定客户端可以接收到的内容数据类型,可以写 application/json 还有字符串数字日期和时间等等

xhr.send()

send 中可以写空,也可以写 null;在使 get 或者 HEAD 方法的时候应该写 null ,也可以不写,不写的话会被默认为 null;

然后这个还和请求是同步或者异步有一定的关系,如果是同步的话,需要到它全部完成才会返回,如果是异步的话,直接就会返回。

如果没有设置过标头的话,就是 Accept 头部信息,就会发送“*/*”的 Accept 头部。

role

创造者

装修工

信使

相关文章:

Ajax:回忆与节点

一点回忆 面对我的Ajax学习,实现前后端交互,最开始我采用的使用网络寻找intellij IDEA Ultimate破解方法,然后最终成功,然后按照相关教程配置java ee项目,然后中间又去配置了Tomcat服务器,然后又去学习了一…...

Python+OpenCV系列:Python和OpenCV的结合和发展

PythonOpenCV系列:Python和OpenCV的结合和发展 **引言****Python语言的发展****1.1 Python的诞生与发展****1.2 Python的核心特性与优势****1.3 Python的应用领域** **OpenCV的发展****2.1 OpenCV的起源与发展****2.2 OpenCV的功能特性****2.3 OpenCV的应用场景** *…...

Ubuntu20.04 由源码编译安装opencv3.2 OpenCV

Ubuntu20.04 由源码编译安装opencv3.2.0 获取 opencv 及opencv_contrib源代码 创建目录以存放opencv及opencv_contrib源代码 mkdir ~/opencv3.2.0 cd ~/opencv3.2.0获取opencv源代码并切换到对应tag git clone https://github.com/opencv/opencv.git cd opencv git checkou…...

A058-基于Spring Boot的餐饮管理系统的设计与实现

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看项目链接获取⬇️,记得注明来意哦~🌹 赠送计算机毕业设计600个选题ex…...

RDIFramework.NET CS敏捷开发框架 SOA服务三种访问(直连、WCF、WebAPI)方式

1、介绍 在软件开发领域,尤其是企业级应用开发中,灵活性、开放性、可扩展性往往是项目成功的关键因素。对于C/S项目,如何高效地与后端数据库进行交互,以及如何提供多样化的服务访问方式,是开发者需要深入考虑的问题。…...

Linux——命名管道及日志

linux——进程间通信及管道的应用场景-CSDN博客 文章目录 目录 文章目录 前言 一、命名管道是什么? 理解: 2、编写代码 makefile 管道封装成类,想用中管道时只需要调用实例化 读端 写端 日志 1、日志是什么? 2、日志有什么&#x…...

Flink 常见面试题

1、Flink 的四大特征(基石) checkpoin基于Chandy-Lamport算法实现了分布式一致性快照提供了一致性的语义 state丰富的StateAPI time实现了Watermark机制,乱序数据处理,迟到数据容忍 window开箱即用的滚动,滑动会话窗口…...

rtc-pcf8563 0-0051: low voltage detected, date/time is not reliable

解决方法: 1、先测量pcf8563电源电压,是否满足要求。 2、pcf8563首次操作。第一次读取pcf8563的时间,未初始化,非法,芯片门槛电压检测配置不合理。使用hwclock命令写入一次,即可解决。 hwclock -f /dev/…...

(简单5步实现)部署本地AI大语言模型聊天系统:Chatbox AI + grok2.0大模型

摘要: 本文将指导您如何部署一个本地AI大语言模型聊天系统,使用Chatbox AI客户端应用和grok-beta大模型,以实现高效、智能的聊天体验。 引言: 由马斯克X-AI发布的Grok 2大模型以其卓越的性能超越了GPT4.0。Grok模型支持超长文本…...

MAUI APP开发蓝牙协议的经验分享:与跳绳设备对接

在开发MAUI应用程序时,蓝牙协议的应用是一个重要的环节,尤其是在需要与外部设备如智能跳绳进行数据交换的场景中。以下是我在开发过程中的一些经验和心得,希望能为你的项目提供帮助。 1. 蓝牙协议基础 蓝牙协议是无线通信的一种标准&#x…...

最新版Node.js下载安装及环境配置教程

目录 初识:Node.js 一、下载:Node.js 二、安装:Node.js 1.下载【node.js】压缩包安装文件 2.解压下载的安装包 3.打开解压的【node-v22.11.0-x64】文件夹 4.双击启动安装程序 5.点击【Next】 6.勾选【I accept the terms in the Lic…...

51c自动驾驶~合集39

我自己的原文哦~ https://blog.51cto.com/whaosoft/12707676 #DiffusionDrive 大幅超越所有SOTA!地平线DiffusionDrive:生成式方案或将重塑端到端格局? 近年来,由于感知模型的性能持续进步,端到端自动驾驶受到了来…...

单链表基础操作

文章目录 abstract定义结点结构初始化链表遍历链表求表长查找结点根据序号查找结点根据值查找结点 插入结点首尾位置插入一般位置插入(通用插入)找到尾元素|尾指针相关操作 删除结点 abstract 单链表是一种简单的动态数据结构,它由一系列结点组成,每个结…...

Asp.net MVC在VSCore中的页面的增删改查(以Blog项目为例),用命令代码

在VSCore中的页面的增删改查(以Blog项目为例) 1.创建项目(无解决方案)复杂项目才需要 dotnet new mvc -o Blog2.控制器 BlogsController.cs 控制器(Controller)名字和视图(View)中的文件名要一模一样 u…...

【Leecode】Leecode刷题之路第66天之加一

题目出处 66-加一-题目出处 题目描述 个人解法 思路: todo代码示例:(Java) todo复杂度分析 todo官方解法 66-加一-官方解法 方法1:找出最长的后缀9 思路: 代码示例:(Java&#…...

使用 VLC 在本地搭建流媒体服务器 (详细版)

提示:详细流程 避坑指南 Hi~!欢迎来到碧波空间,平时喜欢用博客记录学习的点滴,欢迎大家前来指正,欢迎欢迎~~ ✨✨ 主页:碧波 📚 📚 专栏:音视频 目录 借助VLC media pl…...

Ubuntu 常用解压与压缩命令

.zip文件 unzip FileName.zip # 解压 zip DirName.zip DirName # 将DirName本身压缩 zip -r DirName.zip DirName # 压缩,递归处理,将指定目录下的所有文件和子目录一起压缩 zip DirName.zip DirName 行为: 只压缩 DirName 目录本身&#xff…...

【深度学习】四大图像分类网络之AlexNet

AlexNet是由Alex Krizhevsky、Ilya Sutskever(均为Hinton的学生)和Geoffrey Hinton(被誉为”人工智能教父“,首先将反向传播用于多层神经网络)在2012年ImageNet图像分类竞赛中提出的一种经典的卷积神经网络。AlexNet在…...

Day1——GitHub项目共同开发

MarkDowm解释 Markdown是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML代码。Markdown的目的是让文档的编写和阅读变得更加容易,同时也不失HTML的强大功能。以下是Markdown的一些基本概念和用法&a…...

基于PHP的香水销售系统的设计与实现

摘 要 时代科技高速发展的背后,也带动了经济的增加,人们对生活质量的要求也不断提高。香水作为一款在人际交往过程中,给对方留下良好地第一印象的产品,在生活中也可以独自享受其为生活带来的点缀。目前香水市场体量庞大&#xff…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

Cursor实现用excel数据填充word模版的方法

cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?

Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...