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

jQuery之AJAX的知識點總結

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

這次小編給大家整理了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

熱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

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP 與 Ajax:建立一個自動完成建議引擎 PHP 與 Ajax:建立一個自動完成建議引擎 Jun 02, 2024 pm 08:39 PM

使用PHP和Ajax建置自動完成建議引擎:伺服器端腳本:處理Ajax請求並傳回建議(autocomplete.php)。客戶端腳本:發送Ajax請求並顯示建議(autocomplete.js)。實戰案例:在HTML頁面中包含腳本並指定search-input元素識別碼。

jQuery中如何使用PUT請求方式? jQuery中如何使用PUT請求方式? Feb 28, 2024 pm 03:12 PM

jQuery中如何使用PUT請求方式?在jQuery中,發送PUT請求的方法與發送其他類型的請求類似,但需要注意一些細節和參數設定。 PUT請求通常用於更新資源,例如更新資料庫中的資料或更新伺服器上的檔案。以下是在jQuery中使用PUT請求方式的具體程式碼範例。首先,確保引入了jQuery庫文件,然後可以透過以下方式發送PUT請求:$.ajax({u

如何使用Ajax從PHP方法取得變數? 如何使用Ajax從PHP方法取得變數? Mar 09, 2024 pm 05:36 PM

使用Ajax從PHP方法取得變數是Web開發中常見的場景,透過Ajax可以實作頁面無需刷新即可動態取得資料。在本文中,將介紹如何使用Ajax從PHP方法中取得變量,並提供具體的程式碼範例。首先,我們需要寫一個PHP檔案來處理Ajax請求,並傳回所需的變數。下面是一個簡單的PHP檔案getData.php的範例程式碼:

jQuery小技巧:快速修改頁面所有a標籤的文本 jQuery小技巧:快速修改頁面所有a標籤的文本 Feb 28, 2024 pm 09:06 PM

標題:jQuery小技巧:快速修改頁面所有a標籤的文字在網頁開發中,我們經常需要對頁面中的元素進行修改和操作。使用jQuery時,有時候需要一次修改頁面中所有a標籤的文字內容,這樣可以節省時間和精力。以下將介紹如何使用jQuery快速修改頁面所有a標籤的文本,同時給出具體的程式碼範例。首先,我們需要引入jQuery庫文件,確保在頁面中引入了以下程式碼:&lt

使用jQuery修改所有a標籤的文字內容 使用jQuery修改所有a標籤的文字內容 Feb 28, 2024 pm 05:42 PM

標題:使用jQuery修改所有a標籤的文字內容jQuery是一款受歡迎的JavaScript庫,被廣泛用於處理DOM操作。在網頁開發中,經常會遇到需要修改頁面上連結標籤(a標籤)的文字內容的需求。本文將介紹如何使用jQuery來實現這個目標,並提供具體的程式碼範例。首先,我們需要在頁面中引入jQuery庫。在HTML檔案中加入以下程式碼:

PHP 與 Ajax:建立動態載入內容的解決方案 PHP 與 Ajax:建立動態載入內容的解決方案 Jun 06, 2024 pm 01:12 PM

Ajax(非同步JavaScript和XML)允許在不重新載入頁面情況下新增動態內容。使用PHP和Ajax,您可以動態載入產品清單:HTML建立一個帶有容器元素的頁面,Ajax請求載入資料後將資料加入到該元素中。 JavaScript使用Ajax透過XMLHttpRequest向伺服器傳送請求,從伺服器取得JSON格式的產品資料。 PHP使用MySQL從資料庫查詢產品數據,並將其編碼為JSON格式。 JavaScript解析JSON數據,並將其顯示在頁面容器中。點選按鈕觸發Ajax請求,載入產品清單。

了解jQuery中eq的作用及應用場景 了解jQuery中eq的作用及應用場景 Feb 28, 2024 pm 01:15 PM

jQuery是一種流行的JavaScript庫,被廣泛用於處理網頁中的DOM操作和事件處理。在jQuery中,eq()方法是用來選擇指定索引位置的元素的方法,具體使用方法和應用場景如下。在jQuery中,eq()方法選擇指定索引位置的元素。索引位置從0開始計數,即第一個元素的索引是0,第二個元素的索引是1,依此類推。 eq()方法的語法如下:$("s

如何判斷jQuery元素是否具有特定屬性? 如何判斷jQuery元素是否具有特定屬性? Feb 29, 2024 am 09:03 AM

如何判斷jQuery元素是否具有特定屬性?在使用jQuery操作DOM元素時,常會遇到需要判斷元素是否具有某個特定屬性的情況。在這種情況下,我們可以藉助jQuery提供的方法來輕鬆實現這項功能。以下將介紹兩種常用的方法來判斷一個jQuery元素是否具有特定屬性,並附上具體的程式碼範例。方法一:使用attr()方法和typeof運算子//判斷元素是否具有特定屬

See all articles