AJAX 技术

AJAX全称是 Asynchronous JavaScript and  XML ( 异步的JavaScript 和 XML ),使用该技术后,可以实现不刷新整个网页,与服务器进行异步通信并更新部分网页。

一)为什么需要AJAX?

传统网页在与服务器通信时,需要刷新整个页面,导致用户体验不佳。例如:

  • 提交表单后,整个页面会刷新。
  • 加载新内容时,页面会出现 “闪烁”。

而 AJAX 可以在不刷新页面的情况下:

  • 动态加载数据(如社交媒体的 “加载更多” 按钮)。
  • 实时验证表单(如注册时检查用户名是否已存在)。
  • 更新部分内容(如股票价格实时刷新)。

二)AJAX 的核心

XMLHttpRequest(简称 XHR)是 AJAX 的核心 API,用于与服务器进行异步通信。虽然名称中包含 “XML”,但它可以处理任何类型的数据(如 JSON、文本等)。

示例:一个简单的AJAX请求

// 1. 创建 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();// 2. 设置回调函数:当请求成功完成时触发
xhr.onload = function() {// 检查响应状态码(200 表示成功)if (xhr.status === 200) {// 将服务器返回的文本内容显示在页面上document.getElementById("demo").innerHTML = xhr.responseText;}
};// 3. 设置回调函数:当请求出错时触发
xhr.onerror = function() {document.getElementById("demo").innerHTML = "请求出错";
};// 4. 配置请求
// - "GET":请求方法(获取数据)
// - "https://www.runoob.com/try/ajax/ajax_info.txt":请求的 URL
// - true:表示异步请求(默认值为 true)
xhr.open("GET", "https://www.runoob.com/try/ajax/ajax_info.txt", true);// 5. 发送请求
xhr.send();
// 这行代码会立即执行,不会等待服务器响应
console.log("请求已发送,等待响应..."); 

调用 xhr.send() 后,浏览器会发送请求到服务器,但不会等待响应,而是继续执行后续代码。当服务器返回数据后,onload 或 onerror 回调函数会自动被触发。

三)测试

 不使用AJAX的时候,当点击提交按钮后页面就会自动的刷新并跳转。

<!DOCTYPE html>
<html>
<body><form action="/submit.php" method="POST"><label>用户名: <input type="text" name="username"></label><br><label>密码: <input type="password" name="password"></label><br><button type="submit">提交</button>
</form><div id="message">提交后页面会刷新</div></body>
</html>

使用AJAX后

<!DOCTYPE html>
<html>
<body><form id="ajaxForm"><label>用户名: <input type="text" name="username"></label><br><label>密码: <input type="password" name="password"></label><br><button type="button" onclick="submitForm()">提交</button>
</form><div id="message">提交后这里会显示结果(页面不刷新)</div><script>
function submitForm() {// 获取表单数据const form = document.getElementById('ajaxForm');const formData = new FormData(form);// 创建AJAX请求const xhr = new XMLHttpRequest();xhr.open('POST', '/submit.php', true);// 设置回调函数xhr.onload = function() {if (xhr.status === 200) {document.getElementById('message').textContent = xhr.responseText;} else {document.getElementById('message').textContent = 'Error: ' + xhr.status;}};// 发送请求xhr.send(formData);
}
</script></body>
</html>

点击按钮提交后,AJAX负责将表单数据传送到服务器,页面不刷新。 

 

 流水不争先,争的是滔滔不绝!

2025/07/16

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python爬虫实战:研究NLTK库相关技术

1. 引言 1.1 研究背景与意义 随着互联网的快速发展,网络新闻已成为人们获取信息的主要来源之一。每天产生的海量新闻文本蕴含着丰富的信息和知识,但也给信息获取和分析带来了挑战。如何从大量非结构化的新闻文本中自动提取有价值的信息,识别热点话题和趋势,成为当前自然语…

ARM 学习笔记(二)

参考文献&#xff1a;《ARM ArchitectureReference Manual ARMv7-A and ARMv7-R edition》1、MMU 1.1 背景早期的内存是比较小的&#xff0c;一般是几十k&#xff0c;不过相应的程序也是比较小的&#xff0c;这时程序可以直接加载到内存中运行。后来为了支持多个程序的并行&…

Github 贪吃蛇 主页设置

自动化脚本顶部元信息触发条件&#xff08;on:&#xff09;作业&#xff08;jobs:&#xff09;步骤&#xff08;steps:&#xff09;1. 生成 SVG2. 推送到 output 分支Commit & Push在 README 里引用参考&#xff1a;https://github.com/Platane/Platane/tree/master 首先写…

关于Spring RestTemplate

​ 一、概述RestTemplate 是 Spring Framework 提供的一个同步 HTTP 客户端工具&#xff0c;用于简化与 RESTful API 的交互。它封装了底层 HTTP 通信细节&#xff0c;提供了统一的 API 来发送各种 HTTP 请求&#xff08;GET、POST、PUT、DELETE 等&#xff09;&#xff0c;并自…

异步解决一切问题 |消息队列 |减少嵌套 |hadoop |rabbitmq |postsql

设计准则“为什么要考虑这个问题”The forward logic is only about 10% of your code, everything else is 90%.主流逻辑 10%保障扩容和稳健的代码设计90%同步代码就是绑在一个绳上的蚂蚱异步就是实现了解耦这个异步或许有点类似于--一些分布式数据的处理 设计如何实现的呢?…

Spring AI 项目实战(十八):Spring Boot + AI + Vue3 + OSS + DashScope 实现高效语音识别系统(附完整源码)

系列文章 序号 文章名称 1 Spring AI 项目实战(一):Spring AI 核心模块入门 2 Spring AI 项目实战(二):Spring Boot + AI + DeepSeek 深度实战(附完整源码) 3 Spring AI 项目实战(三):Spring Boot + AI + DeepSeek 打造智能客服系统(附完整源码) 4

指针数组和数组指针的应用案例

1. 指针数组应用&#xff1a;查找最长字符串用指针数组存储若干字符串&#xff0c;编写函数找出其中最长的字符串&#xff08;若有多个&#xff0c;返回第一个&#xff09;。#include <stdio.h> #include <string.h>// 函数原型&#xff1a;找出最长字符串 const c…

MCU进入低功耗模式前的引脚处理原则和方法 --> 以最小化低功耗电流

在MCU进入低功耗模式(如Sleep, Stop, Standby, Deep Sleep等)前,精心处理每一个GPIO引脚的状态是最大限度降低功耗电流的关键一步。悬空或配置不当的引脚是导致“漏电”的常见原因。以下是处理引脚以达到最小低功耗电流的原则和方法: 📌 核心原则 避免浮空输入: 浮空(…

张 关于大语言模型(LLM)置信度研究的经典与前沿论文 :温度缩放;语义熵;自一致性;事实与反思;检索增强;黑盒引导;

关于大语言模型(LLM)置信度研究的经典与前沿论文 :温度缩放;语义熵;自一致性;事实与反思;检索增强;黑盒引导; 目录 关于大语言模型(LLM)置信度研究的经典与前沿论文 :温度缩放;语义熵;自一致性;事实与反思;检索增强;黑盒引导; 一、校准方法:让模型概率更贴近真实正确…

ICT测试原理之--什么是假短

ICT测试原理之–什么是假短 文章目录ICT测试原理之--什么是假短一、假短的由来防止假短二、无法检测的短路示例解决无法检测的短路调试短路文件调试意外断路调试意外短路三、调试假短报告短路和断路报告假短报告短路设备/引脚功能性短路测试功能性短路测试的语法一、假短的由来…

三种深度学习模型(LSTM、CNN-LSTM、贝叶斯优化的CNN-LSTM/BO-CNN-LSTM)对北半球光伏数据进行时间序列预测

代码功能 该代码实现了一个光伏发电量预测系统&#xff0c;采用三种深度学习模型&#xff08;LSTM、CNN-LSTM、贝叶斯优化的CNN-LSTM&#xff09;对北半球光伏数据进行时间序列预测&#xff0c;并通过多维度评估指标和可视化对比模型性能。 算法步骤 1. 数据预处理 数据导入&am…

Typecho+阿里云CDN完整配置:防止DDoS攻击与IP暴露

文章目录 Typecho使用阿里云CDN保护网站真实IP地址的完整指南 背景与问题分析 技术选型与方案设计 详细实施步骤 第一步:阿里云CDN基础配置 第二步:DNS解析设置 第三步:源站服务器防护配置 Nginx服务器配置 防火墙配置(以Ubuntu为例) 第四步:Typecho配置调整 高级防护措施…

[硬件]运算放大器对相位噪声的影响与设计提示

运算放大器对相位噪声的影响与设计提示 文章目录运算放大器对相位噪声的影响与设计提示运放影响位噪声的主要因素如何最小化运放对相位噪声的影响总结运算放大器是常用的模拟电路元器件&#xff0c;通常用于放大信号&#xff0c;增强驱动。但是当使用运放放大一个信号时&#x…

github jekyll+chirpy主题搭建博客

github jekyllchirpy主题搭建博客 标签&#xff1a;后端、blog、jekyll 全文链接 本文简要介绍了如何基于 GitHub Pages、Jekyll 及 Chirpy 主题搭建个人博客的流程和注意事项。 主要内容 GitHub Pages 站点简介 可免费搭建个人博客&#xff0c;支持自定义域名&#xff0c;适…

Flutter状态管理篇之ValueNotifier(三)

目录 前言 一、ValueNotifier 概述 二、ValueNotifier 的实现原理 1.类定义 1.类定义 2.关键字段 3.关键方法 1.构造函数 2.getter:value 3.setter:value: 4.toString 2.继承自ChangeNotifier的机制 3.ValueListenable 接口 三、ValueNotifier 的用法 1.基本用法…

Ubuntu togo 系统安装指南

制作一个 “Ubuntu To Go” 系统&#xff08;也就是一个可以随身携带、在不同电脑上启动并拥有持久化存储的U盘系统&#xff09;是解决你问题的完美方案。 这样一来&#xff0c;你就可以&#xff1a; 不改动你现有的电脑系统 (保留你的Ubuntu 20.04 或 Windows)。拥有一个完整…

Python爬虫实战:研究pefile库相关技术

一、引言 可执行文件(Portable Executable,PE)是 Windows 操作系统中最常见的文件格式,包括.exe、.dll、.sys 等多种类型。对 PE 文件的分析在软件逆向工程、恶意软件检测、系统安全研究等领域具有重要意义。传统的 PE 文件分析主要依赖手动操作和专业工具,效率较低且对分…

盟接之桥说制造:差异化定位与效率竞争的双轮驱动

在当今竞争日益激烈的商业环境中&#xff0c;企业如何在市场中脱颖而出&#xff0c;既避免陷入同质化的价格战&#xff0c;又能够通过效率提升实现可持续发展&#xff0c;是每一个经营者必须思考的问题。本文将围绕“差异化”与“效率竞争”两大核心战略展开分析&#xff0c;探…

Vue基础(前端教程①-路由)

项目结构src/├── router/│ └── index.js # 路由配置├── components/│ ├── Home.vue # 首页组件│ ├── About.vue # 关于页组件│ └── Contact.vue # 联系页组件├── App.vue # 根组件&#xff08;含导航栏&…

驾驭 Spring Boot 事件机制:8 个内置事件 + 自定义扩展实战

驾驭 Spring Boot 事件机制&#xff1a;8 个内置事件 自定义扩展实战在 Spring Boot 应用的完整生命周期中&#xff0c;框架为我们预埋了 8 个关键事件&#xff08;Application-level & Context-level&#xff09;。 理解并善用这些事件&#xff0c;可以在“不侵入框架、…