jQuery對Ajax的封裝應用(三)

文章目錄

    • 一、Ajax
    • 二、load
    • 三、ajax(參數),get,set
        • $.ajax
        • $.ajax的get、post簡寫形式
    • 四、ajax全部方法參考 ☆

一、Ajax

  • AJAX 是與服務器交換數據的技術,它在不重載全部頁面的情況下,實現了對部分網頁的更新。
  • AJAX = 異步 JavaScript 和 XML(Asynchronous JavaScript and XML)
  • 如果沒有 jQuery,AJAX 編程還是有些難度的。編寫常規的 AJAX 代碼并不容易,因為不同的瀏覽器對 AJAX 的實現并不相同。這意味著你必須編寫額外的代碼對瀏覽器進行測試。不過,jQuery 團隊為我們解決了這個難題,我們只需要一行簡單的代碼,就可以實現 AJAX 功能
  • 僅介紹常用Ajax方法:load、ajax、get、post
    更多請參考:菜鳥教程 - 總有你想要的

二、load

從服務器加載數據,并把返回的數據放入被選元素中。

$(selector).load(URL,data,callback);
URL:必須,規定希望加載的 URL
data:可選,規定與請求一同發送的查詢字符串鍵/值對集合
callback:可選,回調函數。
callback的可選參數:

  • responseTxt - 包含調用成功時的結果內容
  • statusTXT - 包含調用的狀態
  • xhr - 包含 XMLHttpRequest 對象
$("#div1").load("demo_test.txt");
// 把 "demo_test.txt" 文件中 id="p1" 的元素的內容,加載到指定的 <div> 元素中
$("#div1").load("demo_test.txt #p1");
// 在 load() 方法完成后顯示一個提示框。如果 load() 方法已成功,則顯示"外部內容加載成功!",而如果失敗,則顯示錯誤消息
$("button").click(function(){$("#div1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){if(statusTxt=="success")alert("外部內容加載成功!");if(statusTxt=="error")alert("Error: "+xhr.status+": "+xhr.statusText);});
});

tips:為了避免多頁面情形下的代碼重復,可以利用 load() 方法,將重復的部分(例如導航欄)放入單獨的文件

三、ajax(參數),get,set

$.ajax

所有的 jQuery AJAX 方法都使用 ajax() 方法。該方法通常用于其他方法不能完成的請求。即其他衍生出的get,post,load,getJSON等等均可以由ajax()方法通過參數實現。

ajax()常用參數(框架):

$.ajax(type:"POST",	// GET,POSTurl:"/index.html",	// 路由async:true,		// 異步嗎?默認是true,盡量少用同步data:{			// 規定要發送到服務器的數據id:"1",name:"Jack,Rose",kinds:"Lover"},// 成功回調函數success:function(data,status){Console.log("請求成功!");	// 控制臺輸出Console.log("data:");Console.log(data);Console.log("status:");Console.log(status);}
);

ajax方法的所有參數:

ajax參數值/描述
async布爾值,表示請求是否異步處理,默認是 true。
beforeSend(xhr)發送請求前運行的函數。
cache布爾值,表示瀏覽器是否緩存被請求頁面。默認是 true。
complete(xhr,status)請求完成時運行的函數(在請求成功或失敗之后均調用,即在 success 和 error 函數之后)。
contentType發送數據到服務器時所使用的內容類型。默認是:“application/x-www-form-urlencoded”。
context為所有 AJAX 相關的回調函數規定 “this” 值。
data規定要發送到服務器的數據。
dataFilter(data,type)用于處理 XMLHttpRequest 原始響應數據的函數。
dataType預期的服務器響應的數據類型。
error(xhr,status,error)如果請求失敗要運行的函數。
global布爾值,規定是否為請求觸發全局 AJAX 事件處理程序。默認是 true。
ifModified布爾值,規定是否僅在最后一次請求以來響應發生改變時才請求成功。默認是 false。
jsonp在一個 jsonp 中重寫回調函數的字符串。
jsonpCallback在一個 jsonp 中規定回調函數的名稱。
password規定在 HTTP 訪問認證請求中使用的密碼。
processData布爾值,規定通過請求發送的數據是否轉換為查詢字符串。默認是 true。
scriptCharset規定請求的字符集。
success(result,status,xhr)當請求成功時運行的函數。
timeout設置本地的請求超時時間(以毫秒計)。
traditional布爾值,規定是否使用參數序列化的傳統樣式。
type規定請求的類型(GET 或 POST)。
url規定發送請求的 URL。默認是當前頁面。
username規定在 HTTP 訪問認證請求中使用的用戶名。
xhr用于創建 XMLHttpRequest 對象的函數。

$.ajax的get、post簡寫形式

  • $.get —— 從指定的資源請求數據
    $.get(URL,callback);
    URL:必選,訪問的地址
    callback:可選
    回調參數:
    • data —— 可選,被請求頁面的內容
    • status —— 可選,請求的狀態

  • $.post —— 通過 HTTP POST 請求向服務器提交數據
    $.post(URL,data,callback);
    URL:必選,訪問的地址
    data:可選,規定連同請求發送的數據
    callback:可選
    回調參數:
    • data —— 可選,被請求頁面的內容
    • status —— 可選,請求的狀態
$("button").click(function(){$.post("www.baidu.com",{name:"post請求",time:"2019/12/20"},// post請求成功后調用此函數function(data,status){alert("數據: \n" + data + "\n狀態: " + status);});
});

tips:
GET 和 POST 方法的區別:
1、發送的數據數量
在 GET 中,只能發送有限數量的數據,因為數據是在 URL 中發送的。
在 POST 中,可以發送大量的數據,因為數據是在正文主體中發送的。

2、安全性
GET 方法發送的數據不受保護,因為數據在 URL 欄中公開,這增加了漏洞和黑客攻擊的風險。
POST 方法發送的數據是安全的,因為數據未在 URL 欄中公開,還可以在其中使用多種編碼技術,這使其具有彈性。

3、加入書簽中
GET 查詢的結果可以加入書簽中,因為它以 URL 的形式存在;而 POST 查詢的結果無法加入書簽中。

4、編碼
在表單中使用 GET 方法時,數據類型中只接受 ASCII 字符。
在表單提交時,POST 方法不綁定表單數據類型,并允許二進制和 ASCII 字符。

5、可變大小
GET 方法中的可變大小約為 2000 個字符。
POST 方法最多允許 8 Mb 的可變大小。

6、緩存
GET 方法的數據是可緩存的,而 POST 方法的數據是無法緩存的。

7、主要作用
GET 方法主要用于獲取信息。而 POST 方法主要用于更新數據。

四、ajax全部方法參考 ☆

菜鳥教程 - AJAX方法

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

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

相關文章

如何使用卡巴斯基急救盤清理感染的PC

When you’re dealing with a PC that is completely infected in viruses, sometimes the best thing to do is reboot into a rescue disk and run a full virus scan from there. Here’s how to use the Kaspersky Rescue Disk to clean an infected PC. 當您要處理一臺完全…

2018.12.08 codeforces 946D. Timetable(背包)

傳送門 題意簡述&#xff1a;有一個人上n天課&#xff0c;每天有m個小時的時間安排表&#xff08;一個01串&#xff09;&#xff0c;為1表示要上課&#xff0c;否則不上課&#xff0c;求出如果可以最多翹kkk節課這nnn天在校待的總時間的最小值&#xff08;一天必須在所有課上完…

jQuery雜項進階(四)

文章目錄一、$ 的替換二、使用JSONP實現跨域三、jQuery 雜項方法、實用工具、回調對象、延遲對象參考 ☆四、jQuery 自身屬性參考 ☆五、jQuery 插件介紹和參考 ☆jQuery 樹型菜單插件(Treeview)jQuery Validate表單驗證&#xff0c;jQuery Password Validation&#xff08;密碼…

什么是WLIDSVC.EXE和WLIDSVCM.EXE,它們為什么運行?

You’re no doubt reading this article because you’re wondering what those two processes are doing cluttering up Task Manager, and also wondering why they are in capital letters. You’ve come to the right place. 毫無疑問&#xff0c;您閱讀本文是因為您想知道…

[USACO10DEC] Treasure Chest

題目鏈接 90 Points&#xff1a;智障的區間 DP……設 dp[i][j] 表示區間 [i, j] 能取的最大價值&#xff0c;但我還是 sd 地開了第三維表示先取還是后取的價值。 交上去以為能 A&#xff0c;結果 #2 開心地 MLE……一看內存&#xff0c;64MB&#xff08;把評測機吊起來打一頓&a…

工程化,模塊化,組件化,規范化

前端講究 工程化&#xff0c;模塊化&#xff0c;組件化&#xff0c;層層遞進。 一、工程化 工程化是整個工程的結構、樣式和動作分離&#xff0c;工程化是一種思想而不是某種技術&#xff08;當然為了實現工程化我們會用一些技術&#xff09;。各種規范、技術選型、項目構建優…

linux壓縮和解壓縮_Linux QuickTip:一步下載和解壓縮

linux壓縮和解壓縮Most of the time, when I download something it’s a file archive of some kind – usually a tarball or a zip file. This could be some source code for an app that isn’t included in Gentoo’s Portage tree, some documentation for an internal …

Spark架構與作業執行流程簡介

2019獨角獸企業重金招聘Python工程師標準>>> Spark架構與作業執行流程簡介 博客分類&#xff1a; spark Local模式 運行Spark最簡單的方法是通過Local模式&#xff08;即偽分布式模式&#xff09;。 運行命令為&#xff1a;./bin/run-example org.apache.spark.exam…

Spring boot整合Mongodb

最近的項目用了Mongodb&#xff0c;網上的用法大多都是七零八落的沒有一個統一性&#xff0c;自己大概整理了下&#xff0c;項目中的相關配置就不敘述了&#xff0c;由于spring boot的快捷開發方式&#xff0c;所以spring boot項目中要使用Mongodb&#xff0c;只需要添加依賴和…

nodejs和Vue和Idea

文章目錄Vue環境搭建Idea安裝Idea中配置Vue環境Node.js介紹npm介紹Vue.js介紹[^3]Idea介紹Vue環境搭建 概述&#xff1a;vue環境搭建&#xff1a;需要npm&#xff08;cnpm&#xff09;&#xff0c;而npm內嵌于Node.js&#xff0c;所以需要下載Node.js。 下載Node.js&#xff1…

Spring MVC上下文父子容器

2019獨角獸企業重金招聘Python工程師標準>>> Spring MVC上下文父子容器 博客分類&#xff1a; java spring 在Spring MVC的啟動依賴Spring框架&#xff0c;有時候我們在啟動Spring MVC環境的時候&#xff0c;如果配置不當的話會造成一些不可預知的結果。下面主要介紹…

12.7 Test

目錄 2018.12.7 TestA 序列sequence(迭代加深搜索)B 轟炸bomb(Tarjan DP)C 字符串string(AC自動機 狀壓DP)考試代碼AC2018.12.7 Test題目為2018.1.4雅禮集訓。 時間&#xff1a;4.5h期望得分&#xff1a;010010實際得分&#xff1a;010010 A 序列sequence(迭代加深搜索) 顯然可…

word文檔中統計總頁數_如何在Google文檔中查找頁數和字數統計

word文檔中統計總頁數Whether you’ve been given an assignment with a strict limit or you just like knowing how many words you’ve written, Google Docs has your back. Here’s how to see exactly how many words or pages you’ve typed in your document. 無論您是…

vue 入門notes

文章目錄vue一、js基礎二、封裝緩存三、組件1、組件創建、引入、掛載、使用2、組件間的傳值- 父組件主動獲取子組件的數據和方法&#xff08;子組件給父組件傳值&#xff09;&#xff1a;- 子組件主動獲取父組件的數據和方法&#xff08;父組件給子組件傳值&#xff09;&#x…

spring集成 JedisCluster 連接 redis3.0 集群

2019獨角獸企業重金招聘Python工程師標準>>> spring集成 JedisCluster 連接 redis3.0 集群 博客分類&#xff1a; 緩存 spring 客戶端采用最新的jedis 2.7 1. maven依賴&#xff1a; <dependency> <groupId>redis.clients</groupId> <artifact…

html-盒子模型及pading和margin相關

margin: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>* {margin: 0;padding: 0;}/*margin 外邊距 元素與其他元素的距離&#xff08;邊框以外的距離&#xff09;一…

火狐瀏覽器復制網頁文字_從Firefox中的網頁鏈接的多種“復制”格式中選擇

火狐瀏覽器復制網頁文字Tired of having to copy, paste, and then format links for use in your blogs, e-mails, or documents? Then see how easy it is to choose a click-and-go format that will save you a lot of time and effort with the CoLT extension for Firef…

vscode配置、使用git

文章目錄一、下載、配置git二、vscode配置并使用git三、記住密碼一、下載、配置git 1、git-win-x64點擊下載后安裝直接安裝&#xff08;建議復制鏈接用迅雷等下載器下載&#xff0c;瀏覽器太慢&#xff0c;記住安裝位置&#xff09;。 2、配置git環境變量&#xff1a; 右鍵 此…

BTrace功能

2019獨角獸企業重金招聘Python工程師標準>>> BTrace功能 一、背景 在生產環境中可能經常遇到各種問題&#xff0c;定位問題需要獲取程序運行時的數據信息&#xff0c;如方法參數、返回值、全局變量、堆棧信息等。為了獲取這些數據信息&#xff0c;我們可以…

.NET(c#) 移動APP開發平臺 - Smobiler(1)

原文&#xff1a;https://www.cnblogs.com/oudi/p/8288617.html 如果說基于.net的移動開發平臺&#xff0c;目前比較流行的可能是xamarin了&#xff0c;不過除了這個&#xff0c;還有一個比xamarin更好用的國內的.net移動開發平臺&#xff0c;smobiler&#xff0c;不用學習另外…