簡單實現Ajax基礎應用

Ajax不是一種技術,而是一個編程概念。HTML 和 CSS 可以組合使用來標記和設置信息樣式。JavaScript 可以修改網頁以動態顯示,并允許用戶與新信息進行交互。內置的 XMLHttpRequest 對象用于在網頁上執行 Ajax,允許網站將內容加載到屏幕上而無需刷新頁面。Ajax不是一種新技術,也不是一種新語言。相反,它是以新方式使用的現有技術。

在創造“Ajax”一詞的文章中, 杰西·詹姆斯·加勒特解釋說,以下技術被整合在一起:

  • 用于演示的HTML(或 XHTML)和 CSS
  • 文檔對象模型(DOM),用于動態顯示數據并與之交互
  • 用于數據交換的 JSON 或 XML,以及用于 XML 操作的 XSLT
  • 用于異步通信的XMLHttpRequest對象
  • 將這些技術結合在一起的JavaScript

下面為你介紹 AJAX 的基礎應用,我會通過原生 JavaScript 和 Fetch API 兩種方式來實現一個簡單的示例。

1.?原生 XMLHttpRequest 方式

步驟解析

  1. 創建 XMLHttpRequest 對象。
  2. 打開與服務器的連接。
  3. 監聽請求狀態的變化。
  4. 發送請求。
  5. 處理響應數據。

示例代碼

// 創建XMLHttpRequest對象
const xhr = new XMLHttpRequest();// 配置請求(以GET請求為例)
xhr.open('GET', 'https://api.example.com/data', true);// 監聽狀態變化
xhr.onreadystatechange = function() {if (xhr.readyState === 4) { // 請求已完成if (xhr.status === 200) { // 請求成功console.log('響應數據:', xhr.responseText);} else {console.error('請求失敗,狀態碼:', xhr.status);}}
};// 發送請求
xhr.send();

2.?Fetch API 方式(現代方法)

步驟解析

  1. 使用 fetch () 函數發起請求。
  2. 處理 Promise 對象。
  3. 將響應數據解析為 JSON 格式。
  4. 處理解析后的數據。

示例代碼

// 發起GET請求
fetch('https://api.example.com/data').then(response => {if (!response.ok) {throw new Error('HTTP錯誤,狀態碼:' + response.status);}return response.json(); // 解析JSON數據}).then(data => {console.log('響應數據:', data);}).catch(error => {console.error('請求出錯:', error);});

3.?實際應用示例

下面是一個結合 HTML 和 Fetch API 的完整示例,它能夠從 GitHub API 獲取用戶信息并展示出來:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>AJAX示例</title>
</head>
<body><button id="fetchData">獲取GitHub用戶信息</button><div id="result"></div><script>document.getElementById('fetchData').addEventListener('click', function() {// 使用Fetch API發送請求fetch('https://api.github.com/users/octocat').then(response => response.json()).then(data => {// 處理返回的數據const resultDiv = document.getElementById('result');resultDiv.innerHTML = `<h3>${data.login}</h3><img src="${data.avatar_url}" alt="Avatar" width="100"><p>關注者: ${data.followers}</p><p>倉庫數量: ${data.public_repos}</p>`;}).catch(error => {console.error('請求出錯:', error);document.getElementById('result').innerHTML = '獲取數據失敗';});});</script>
</body>
</html>

4.?關鍵要點提醒

  • 跨域請求:由于瀏覽器的同源策略限制,AJAX 通常只能向同源的服務器發送請求。不過,可以通過 CORS(跨域資源共享)或者 JSONP 來解決跨域問題。
  • 錯誤處理:在實際應用中,必須對網絡錯誤、超時等異常情況進行處理。
  • 請求方法:支持 GET、POST、PUT、DELETE 等多種 HTTP 請求方法。
  • 數據格式:常見的數據格式有 JSON、XML、純文本等。

通過上述示例,你可以實現簡單的 AJAX 請求。在實際的項目開發中,建議使用 axios 等第三方庫,它能提供更強大的功能和更友好的 API。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/908047.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/908047.shtml
英文地址,請注明出處:http://en.pswp.cn/news/908047.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

詳解開漏輸出和推挽輸出

開漏輸出和推挽輸出 以上是 GPIO 配置為輸出時的內部示意圖&#xff0c;我們要關注的其實就是這兩個 MOS 管的開關狀態&#xff0c;可以組合出四種狀態&#xff1a; 兩個 MOS 管都關閉時&#xff0c;輸出處于一個浮空狀態&#xff0c;此時他對其他點的電阻是無窮大的&#xff…

Matlab實現LSTM-SVM回歸預測,作者:機器學習之心

Matlab實現LSTM-SVM回歸預測&#xff0c;作者&#xff1a;機器學習之心 目錄 Matlab實現LSTM-SVM回歸預測&#xff0c;作者&#xff1a;機器學習之心效果一覽基本介紹程序設計參考資料 效果一覽 基本介紹 代碼主要功能 該代碼實現了一個LSTM-SVM回歸預測模型&#xff0c;核心流…

Leetcode - 周賽 452

目錄 一&#xff0c;3566. 等積子集的劃分方案二&#xff0c;3567. 子矩陣的最小絕對差三&#xff0c;3568. 清理教室的最少移動四&#xff0c;3569. 分割數組后不同質數的最大數目 一&#xff0c;3566. 等積子集的劃分方案 題目列表 本題有兩種做法&#xff0c;dfs 選或不選…

【FAQ】HarmonyOS SDK 閉源開放能力 —Account Kit(5)

1.問題描述&#xff1a; 集成華為一鍵登錄的LoginWithHuaweiIDButton&#xff0c; 但是Button默認名字叫 “華為賬號一鍵登錄”&#xff0c;太長無法顯示&#xff0c;能否簡寫成“一鍵登錄”與其他端一致&#xff1f; 解決方案&#xff1a; 問題分兩個場景&#xff1a; 一、…

Asp.Net Core SignalR的分布式部署

文章目錄 前言一、核心二、解決方案架構三、實現方案1.使用 Azure SignalR Service2.Redis Backplane(Redis 背板方案&#xff09;3.負載均衡配置粘性會話要求無粘性會話方案&#xff08;僅WebSockets&#xff09;完整部署示例&#xff08;Redis Docker&#xff09;性能優化技…

L2-054 三點共線 - java

L2-054 三點共線 語言時間限制內存限制代碼長度限制棧限制Java (javac)2600 ms512 MB16KB8192 KBPython (python3)2000 ms256 MB16KB8192 KB其他編譯器2000 ms64 MB16KB8192 KB 題目描述&#xff1a; 給定平面上 n n n 個點的坐標 ( x _ i , y _ i ) ( i 1 , ? , n ) (x\_i…

【 java 基礎知識 第一篇 】

目錄 1.概念 1.1.java的特定有哪些&#xff1f; 1.2.java有哪些優勢哪些劣勢&#xff1f; 1.3.java為什么可以跨平臺&#xff1f; 1.4JVM,JDK,JRE它們有什么區別&#xff1f; 1.5.編譯型語言與解釋型語言的區別&#xff1f; 2.數據類型 2.1.long與int類型可以互轉嗎&…

高效背誦英語四級范文

以下是結合認知科學和實戰驗證的 ??高效背誦英語作文五步法??&#xff0c;助你在30分鐘內牢固記憶一篇作文&#xff0c;特別適配考前沖刺場景&#xff1a; &#x1f4dd; ??一、解構作文&#xff08;5分鐘&#xff09;?? ??拆解邏輯框架?? 用熒光筆標出&#xff…

RHEL7安裝教程

RHEL7安裝教程 下載RHEL7鏡像 通過網盤分享的文件&#xff1a;RHEL 7.zip 鏈接: https://pan.baidu.com/s/1ExLhdJigj-tcrHJxIca5XA?pwdjrrj 提取碼: jrrj --來自百度網盤超級會員v6的分享安裝 1.打開VMware&#xff0c;新建虛擬機&#xff0c;選擇自定義然后下一步 2.點擊…

結構型設計模式之Decorator(裝飾器)

結構型設計模式之Decorator&#xff08;裝飾器&#xff09; 前言&#xff1a; 本案例通過李四舉例&#xff0c;不改變源代碼的情況下 對“才藝”進行增強。 摘要&#xff1a; 摘要&#xff1a; 裝飾器模式是一種結構型設計模式&#xff0c;允許動態地為對象添加功能而不改變其…

Kotlin委托機制使用方式和原理

目錄 類委托屬性委托簡單的實現屬性委托Kotlin標準庫中提供的幾個委托延遲屬性LazyLazy委托參數可觀察屬性Observable委托vetoable委托屬性儲存在Map中 實踐方式雙擊back退出Fragment/Activity傳參ViewBinding和委托 類委托 類委托有點類似于Java中的代理模式 interface Base…

SpringBoot接入Kimi實踐記錄輕松上手

kimi簡單使用 什么是Kimi API 官網&#xff1a;https://platform.moonshot.cn/ Kimi API 并不是一個我所熟知的廣泛通用的術語。我的推測是&#xff0c;你可能想問的是關于 API 的一些基礎知識。API&#xff08;Application Programming Interface&#xff0c;應用程序編程接…

書籍在其他數都出現k次的數組中找到只出現一次的數(7)0603

題目 給定一個整型數組arr和一個大于1的整數k。已知arr中只有1個數出現了1次&#xff0c;其他的數都出現了k次&#xff0c;請返回只出現了1次的數。 解答&#xff1a; 對此題進行思路轉換&#xff0c;可以將此題&#xff0c;轉換成k進制數。 k進制的兩個數c和d&#xff0c;…

React 項目初始化與搭建指南

React 項目初始化有多種方式&#xff0c;可以選擇已有的腳手架工具快速創建項目&#xff0c;也可以自定義項目結構并使用構建工具實現項目的構建打包流程。 1. 腳手架方案 1.1. Vite 通過 Vite 創建 React 項目非常簡單&#xff0c;只需一行命令即可完成。Vite 的工程初始化…

大模型模型推理的成本過高,如何進行量化或蒸餾優化

在人工智能的浪潮中,大模型已經成為推動技術革新的核心引擎。從自然語言處理到圖像生成,再到復雜的多模態任務,像GPT、BERT、T5這樣的龐大模型展現出了驚人的能力。它們在翻譯、對話系統、內容生成等領域大放異彩,甚至在醫療、金融等行業中也開始扮演重要角色。可以說,這些…

機器學習在多介質環境中多污染物空間預測的應用研究

機器學習在多介質環境中多污染物空間預測的應用研究 1. 引言 1.1 研究背景與意義 隨著工業化和城市化進程加速,環境中多種污染物的共存已成為全球性環境問題。重金屬(如鉛、汞、鎘)、有機污染物(如多環芳烴、農藥殘留)和新興污染物(如微塑料、藥品殘留)在空氣、水體、…

圖解深度學習 - 激活函數和損失函數

激活函數和損失函數在深度學習中扮演著至關重要的角色。通過選擇合適的激活函數和損失函數&#xff0c;可以顯著提高神經網絡的表達能力和優化效果。 其中激活函數是神經網絡中的非線性函數&#xff0c;用于在神經元之間引入非線性關系&#xff0c;從而使模型能夠學習和表示復…

影響服務器穩定性的因素都有什么?

服務器的穩定性會影響到業務是否能夠持續運行&#xff0c;用戶在進行訪問網站的過程中是否出現頁面卡頓的情況&#xff0c;本文就來了解一下都是哪些因素影響著服務器的穩定性。 服務器中的硬件設備是保證服務器穩定運行的基礎&#xff0c;企業選擇高性能的處理器和大容量且高速…

TopCode之最大子數組和

題目鏈接 53. 最大子數組和 - 力扣&#xff08;LeetCode&#xff09; 題目解析 算法原理 解法1: 暴力(一個循環用來固定,一個用來找最大的子數組O(n^2),每次往后拓展一個元素就判斷是否是最長的),枚舉出每一種情況, 然后不斷更新最大的 解法二: dp 1> dp的含義: dp[i]記…

深入解析 Flask 命令行工具與 flask run命令的使用

Flask 是一個輕量級的 Python Web 應用框架&#xff0c;其內置的命令行工具&#xff08;CLI&#xff09;基于 Click 庫&#xff0c;提供了方便的命令行接口&#xff0c;用于管理和運行 Flask 應用程序。本文將詳細介紹 Flask 命令行工具的功能&#xff0c;以及如何使用 flask r…