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
英文地址,請注明出處:http://en.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;可以在“不侵入框架、…