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 目录本身ÿ…...
【深度学习】四大图像分类网络之AlexNet
AlexNet是由Alex Krizhevsky、Ilya Sutskever(均为Hinton的学生)和Geoffrey Hinton(被誉为”人工智能教父“,首先将反向传播用于多层神经网络)在2012年ImageNet图像分类竞赛中提出的一种经典的卷积神经网络。AlexNet在…...
Day1——GitHub项目共同开发
MarkDowm解释 Markdown是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML代码。Markdown的目的是让文档的编写和阅读变得更加容易,同时也不失HTML的强大功能。以下是Markdown的一些基本概念和用法&a…...
基于PHP的香水销售系统的设计与实现
摘 要 时代科技高速发展的背后,也带动了经济的增加,人们对生活质量的要求也不断提高。香水作为一款在人际交往过程中,给对方留下良好地第一印象的产品,在生活中也可以独自享受其为生活带来的点缀。目前香水市场体量庞大ÿ…...
A-star算法
算法简介 A*(A-star)算法是一种用于图形搜索和路径规划的启发式搜索算法,它结合了最佳优先搜索(Best-First Search)和Dijkstra算法的思想,能够有效地寻找从起点到目标点的最短路径。A*算法广泛应用于导航、…...
前端用原生js下载File对象文件,多用于上传附件时,提交之前进行点击预览,或打开本地已经选择待上传的附件列表
用于如上图场景,已经点击选择了将要上传的文件,在附件列表里面用户希望点击下载文件,以核实自己是否选中了需要上传的文件,此刻就需要 用到下面的方法: // 下载File对象文件 downloadByFileObject(file, { fileName }…...
服务器记录所有用户docker操作,监控删除容器/镜像的人
文章目录 使用场景安装auditd添加docker审计规则设置监控日志大小与定期清除查询 Docker 操作日志查看所有用户,所有操作日志查看特定用户的 Docker 操作查看所有用户删除容器/镜像日志过滤特定时间范围内日志 使用场景 多人使用的服务器,使用的docker …...
关于使用天地图、leaflet、ENVI、Vue工具实现 前端地图上覆盖上处理的农业地块图层任务
1.项目框架搭建 项目地址:Webgis: 一个关于webgis、天地图、Leaflet、Vue、数据库的学习框架。 ①git到本地,vscode打开。 ② 配置后端 搜索下载MySQL插件(前提:电脑中装有MySQL才可应用)。 连接数据库。 配置基本…...
基于yolov4深度学习网络的排队人数统计系统matlab仿真,带GUI界面
目录 1.算法仿真效果 2.算法涉及理论知识概要 3.MATLAB核心程序 4.完整算法代码文件获得 1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印): 仿真操作步骤可参考程序配套的操作视频。 2.算法涉及理论知识概要 在现代社会…...
用 React 编写一个笔记应用程序
这篇文章会教大家用 React 编写一个笔记应用程序。用户可以创建、编辑、和切换 Markdown 笔记。 1. nanoid nanoid 是一个轻量级和安全的唯一字符串ID生成器,常用于JavaScript环境中生成随机、唯一的字符串ID,如数据库主键、会话ID、文件名等场景。 …...
如何离线安装dockerio
如何离线安装dockerio 一、下载Docker离线安装包二、上传离线安装包三、解压安装包四、复制文件到系统目录五、配置Docker服务六、设置文件权限并重新加载配置七、启动Docker服务八、设置开机自启动九、验证安装Docker是一个开源的容器化平台,用于开发、发布和运行应用程序。离…...
LocalDateTime序列化(跟redis有关)
使用过 没成功,序列化后是[2024 11 10 17 22 20]差不多是这样, 反序列化后就是: [ 2024 11 10.... ] 可能是我漏了什么 这是序列化后的: 反序列化后: 方法(加序列化和反序列化注解)&…...
【redis】如何跑
在 Windows 上配置 Redis 需要一些额外的步骤,因为 Redis 官方并没有为 Windows 提供原生支持。不过,可以通过以下方法来安装和配置 Redis。 方法一:使用 Windows 版 Redis(非官方版本) 下载 Redis for Windows Redis…...
Scala学习记录,全文单词统计
package test32 import java.io.PrintWriter import scala.io.Source //知识点 // 字符串.split("分隔符":把字符串用指定的分隔符,拆分成多个部分,保存在数组中) object test {def main(args: Array[String]): Unit {//从文件1.t…...
wordpress SEO Smart Link/网络营销的八大职能
之前就有过想写一篇关于CAE的科普文,缘起是看到很多以CAE为标题的文章,内容围绕某一门学科,某一个行业,或者某种仿真软件介绍,有一定的局限性。CAE涉及的领域很广,只深入某个方面讲难以有全局观,…...
公司做网站怎么样/资源优化排名网站
智慧 毅力 无所不能 正确性、健壮性、可靠性、效率、易用性、可读性、可复用性、兼容性、可移植性... Lua和C交互详细总结 转自:http://cn.cocos2d-x.org/tutorial/show?id1474 一、Lua堆栈 要理解Lua和C交互,首先要理解Lua堆栈。 简单来说࿰…...
企业邮箱注册价格/网站排名优化客服
2017比较火的概念:人工智能,图像识别,语音识别;技术驱动和数据驱动机器学习:机器学习,深度学习,自然语言处理,图像处理,数据挖掘,精准推荐的分类熟悉一种大数…...
wordpress棋牌插件/高端营销型网站建设
Java中的 ? extends T和 ? super T? 通配符类型<? extends T><? super T>PECS原则总结? 通配符类型 <? extends T>表示类型的上界: 表示参数化类型的可以是T或者T的子类 <? super T>表示类型的下界: 表示参数化类型是这个类型的超类型,即父类…...
长沙做网站建设公司/廊坊seo排名霸屏
一,集合。 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合最重要的两点: 去重,把一个列表变成…...
wordpress+qq音乐插件/小红书推广方式
文章目录1、man命令(1)man命令的快捷键(2)man命令的帮助级别(了解即可)2、info命令3、help命令4、--help选项1、man命令 man是最常见的帮助命令,也是Linux最主要的帮助命令,其基本信…...