搜尋
首頁web前端js教程jQuery之AJAX的知識點總結

jQuery之AJAX的知識點總結

Mar 24, 2018 pm 02:23 PM
ajaxjquery知識點

這次小編給大家整理了jQuery之AJAX的知識點,下面就是知識點匯總,一起來看一下。

一.AJAX概念
Asynchronous Javascript And XML(非同步JavaScript和XML)
AJAX並不是一種語言,而是一種創建互動網頁應用的網頁開發技術
AJAX是Javascript、XHTML和CSS、DOM、XML和XSTL、XMLHttpRequest 等技術的組合
1.使用XHTML+CSS來標準化呈現;
2.使用XML和XSLT進行數據交換及相關操作;
3.使用XMLHttpRequest物件與Web伺服器進行非同步資料通訊;
4.使用Javascript操作Document Object Model(網路文檔物件模型)進行動態顯示及互動;
5.使用JavaScript綁定與處理所有資料
什麼是XML?
XML 指可擴充標記語言(EXtensible Markup Language)
XML 是一種標記語言,很類似HTML
XML 的設計宗旨是傳輸數據,而非顯示數據
XML 標籤則沒有被預先定義。您需要自行定義標籤。
XML 被設計為具有自我描述性。
XML 是 W3C 的建議標準
什麼是 XSLT?
XSLT 指XSL 轉換(XSL Transformations)[1]
XSLT 是XSL 中最重要的部分
XSLT 可將一種XML 文件轉換為另外一種XML 文件
XSLT 使用XPath 在XML文件中進行導覽
XSLT 是一個W3C 標準


AJAX核心物件是XMLHttpRequest


二.AJAX工作原理
#使用者操作流程:
使用者瀏覽器->JavaScript實例化XmlHttpRequest物件->AJAX引擎->http請求->web伺服器->後台業務系統
系統返回流程:
後台業務系統->後台伺服器->web伺服器->HTML,XML,JSON資料->AJAX引擎->HTML+CSS(Wel瀏覽器)->使用者瀏覽器


三.AJAX優缺點:
AJAX非同步處理優點:
減輕伺服器的負擔,AJAX一般只從伺服器取得只需要的資料
無重新整理頁面更新,減少使用者等待的時間
更好的客戶體驗,可以將一些伺服器的工作轉移到客戶端來完成,節省網路資源,提高使用者體驗
無平台限制
促進顯示與資料想分離
AJAX非同步處理的缺點:
頁面中存在大量JS,給搜尋引擎帶來困難
AJAX幹掉了Back和History功能,即對瀏覽器機制的破壞
存在跨域問題
只能傳送及接收utf-8編碼資料


#1.AJAX實作步驟


window.open(URL,name,features,replace)
URL:一個可選的字串,宣告了要在新視窗中顯示的文件的URL。如果省略了這個參數
或它的值是空字串,那麼新視窗就不會顯示任何文件
name:一個可選的字串,該字串是一個由逗號分隔的特徵列表,其中包括數字、字母和下劃線,
該字元聲明了新視窗的名稱。這個名稱可以用作標記

的屬性 target 的值。
如果該參數指定了一個已經存在的窗口,那麼 open() 方法就不再建立一個新窗口,
而只是傳回指定窗口的參考。在這種情況下,features 將被忽略
features:一個可選的字串,宣告了新視窗要顯示的標準瀏覽器的特徵。如果省略該參數,
新視窗將具有所有標準特徵。在視窗特徵這個表格中,我們對該字串的格式進行了詳細的說明
replace:
#一個可選的布林值。規定了裝載到視窗的 URL 是在視窗的瀏覽歷史記錄中建立一個新條目,
還是取代瀏覽歷史記錄中的目前條目。支援下面的值:
true - URL 取代瀏覽歷史記錄中的目前條目。
false - URL 在瀏覽歷史中建立新的條目


send()send()用於向一個已經連接的socket發送數據,如果無錯誤,返回值為所發送數據的總數,
否則返回SOCKET_ERROR。 [1]  send也是一個英文單字。


responseText屬性:
伺服器程序傳回資料的文字版本
伺服器程序傳回資料的相容DOM的XML文件物件status 伺服器返回的狀態碼, 如:404 = "文件末找到".
你向ajax後台的程序發送xmlhttp請求的時候, 後台程序接到請求會進            行處理,處理結束後,可以返回一串數據給前台,
這個就是responseText.
一般在後台程式C#中是Response.Write("字串") php中使用的是echo...就是一個輸出字串
因為要輸出一個字符串但有時候得到的是一個數組,但是要把他串行化,用PHP中的json技術把這個數組轉換成
一個字串輸出給前端,而前端respText屬性能接收住這個字串,然後透過JS中的json技術把這個字串
再次轉換成JS認識的物件來進行操作(json資料傳輸類型基本上哪種語言都認識可以用於各種語言的傳輸與轉換)


初始化XMLHttpRequest物件

  if (window.XMLHttpRequest) {// Mozilla, Safari, ...
var http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE 5 ,6
var http_request = new ActiveXObject("Microsoft.XMLHTTP");
}

XMLHttpRequest發出HTTP請求

http_request.open("GET|POST","test.php?GET方式传值",true);
          http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //仅POST请求时需要设置
         //用于向一个已经连接的socket发送数据
         //如果是POST传输方式要把值写在send()函数里
          http_request.send(向一个已连接的套接口发送数据);
      XMLHttpRequest取得响应数据并显示
       http_request.onreadystatechange=function(){
if(http_request.readyState==4  && http_request.status==200){
                    $("p").text(http_request.responseText)
         }
      }

範例:
//GET方式
參數1:代表是以get還是post方式傳送請求 參數2:傳送請求給哪一個url  參數3:true代表非同步請求,false代表同步請求

http_request.open("GET","test.php?user_name="+username.val(),true);
http_request.send();

#發送POST請求

var username=$("input[name='user_name']");

參數1:代表是以get還是post方式發送請求 參數2 :傳送請求給哪個url  參數3:true代表非同步請求,false代表同步請求

http_request.open("POST","test.php",true);
http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

如果是POST傳輸方式要把值寫在send()函數裡

#
http_request.send({username:username});


四.JSON
Javascript Object Notation,是一種輕量級的資料交換格式
JSON每種語言都認識他所以用他進行各種語言的資料的轉換
JSON支援多種語言
格式
{key:value,key:value,.....}  物件格式
[{key:value,key:value,.. ...},{key:value,key:value,.....},......]  數組格式
PHP處理:
$json=json_encode($array) //對變數進行Json編碼
$array=json_decode($json) //將Json資料解碼轉換成PHP變數
JavaScript處理:
eval('('+json+')')  //將某個字串依照JS程式碼來執行
範例:

eval("x=10;y=20;document.write(x*y)")
document.write(eval("2+2"))
JSON.parse(json) //对传过来的json字符串进行解码,变成JS认识的对象
JSON.stringify(obj) //将JS中的值编译成json字符串


五.jQuery中AJAX應用1
.不要忘寫
##

$.ajax({
            //你要传的php文件的路径
            url:"test1.php",    ('服务器url地址')
            //以get方式传输拼接字符串
            data:"user_name="+$('input[name="user_name"]').val(),('名=值&名=值&.....',)
            //以什么方式传输
            type:'get',('post|get')
            //传输返回的数据类型
            dataType:'json',  ('xml|html|text|json|script')
            //展示 数据的方式
            success:function(res){
                $('h1').text('用户名为:'+res.user_name);
            },
                //错误信息
                error:function(xhr){
                },
              timeout:2000,
              async:true,
              cache:false
})

六.jQuery中AJAX應用2


$.get()
$.get('服务器url地址',"json格式或字符串格式",function(res){
        //处理返回的数据
}), "xml|html|json|text|script")

例:


#

            //'服务器url地址',"json格式或字符串格式"
        $.get("test1.php",{user_name:$("input[name='user_name']").val()},function(data){
               //如果后台发过来的值跟这里的值相等让他执行下面代码
                if(data.status=='ok'){
                    alert("登陆成功");
                    location.href="http://www.wl.com";
                }else{
                    alert("登陆失败");
                }
        //"xml|html|json|text|script"类型
        },'json')


七.jQuery中AJAX應用3#serialize( ) 序列表表格內容為字串,串列化資料用於Ajax 請求

$.post()
$.post('服务器url地址',"json格式或字符串格式",function(res){
        //处理返回的数据
}), "xml|html|json|text|script")

#範例:


//'服务器url地址',"json格式或字符串格式" 用post方式提交要用form表单包起来
        // 然后用serialize()来拿里面所有有值
        $.post("test1.php",$('form').serialize(),function(res){
            //如果后台发过来的值跟这里的值相等让他执行下面代码
            if(res.status=='ok'){
                alert("登陆成功");
                location.href="http://www.wl.com";
            }else{
                alert("登陆失败");
            }
            //"xml|html|json|text|script"类型
        },'json')

php中接收處理輸出


#

try{
    $pdo=new PDO("mysql:host=127.0.0.1;port=3306;dbname=数据库名",'数据库账号','数据库密码');
    $pdo->exec("set names utf8");
    $sen=$pdo->query("select * from yh_admin where user_name='{$user_name}' limit 1");
    if($sen->rowCount()>0){
       // $arr=$sen->fetch(PDO::FETCH_ASSOC);
        //echo json_encode($arr);
        //echo 'yes';
       $arr['status']='ok';
    }else{
        echo 'no';
    }
    //切记用json数据类型传输
    echo json_encode($arr);
}catch (PDOException $e){
    echo $e->getMessage();
}

以上是jQuery之AJAX的知識點總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
C和JavaScript:連接解釋C和JavaScript:連接解釋Apr 23, 2025 am 12:07 AM

C 和JavaScript通過WebAssembly實現互操作性。 1)C 代碼編譯成WebAssembly模塊,引入到JavaScript環境中,增強計算能力。 2)在遊戲開發中,C 處理物理引擎和圖形渲染,JavaScript負責遊戲邏輯和用戶界面。

從網站到應用程序:JavaScript的不同應用從網站到應用程序:JavaScript的不同應用Apr 22, 2025 am 12:02 AM

JavaScript在網站、移動應用、桌面應用和服務器端編程中均有廣泛應用。 1)在網站開發中,JavaScript與HTML、CSS一起操作DOM,實現動態效果,並支持如jQuery、React等框架。 2)通過ReactNative和Ionic,JavaScript用於開發跨平台移動應用。 3)Electron框架使JavaScript能構建桌面應用。 4)Node.js讓JavaScript在服務器端運行,支持高並發請求。

Python vs. JavaScript:比較用例和應用程序Python vs. JavaScript:比較用例和應用程序Apr 21, 2025 am 12:01 AM

Python更適合數據科學和自動化,JavaScript更適合前端和全棧開發。 1.Python在數據科學和機器學習中表現出色,使用NumPy、Pandas等庫進行數據處理和建模。 2.Python在自動化和腳本編寫方面簡潔高效。 3.JavaScript在前端開發中不可或缺,用於構建動態網頁和單頁面應用。 4.JavaScript通過Node.js在後端開發中發揮作用,支持全棧開發。

C/C在JavaScript口譯員和編譯器中的作用C/C在JavaScript口譯員和編譯器中的作用Apr 20, 2025 am 12:01 AM

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。1)C 用于解析JavaScript源码并生成抽象语法树。2)C 负责生成和执行字节码。3)C 实现JIT编译器,在运行时优化和编译热点代码,显著提高JavaScript的执行效率。

JavaScript在行動中:現實世界中的示例和項目JavaScript在行動中:現實世界中的示例和項目Apr 19, 2025 am 12:13 AM

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

JavaScript和Web:核心功能和用例JavaScript和Web:核心功能和用例Apr 18, 2025 am 12:19 AM

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

了解JavaScript引擎:實施詳細信息了解JavaScript引擎:實施詳細信息Apr 17, 2025 am 12:05 AM

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python vs. JavaScript:學習曲線和易用性Python vs. JavaScript:學習曲線和易用性Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用