1. 程式人生 > 實用技巧 >學習Ajax看著一篇就夠了

學習Ajax看著一篇就夠了

Ajax 引言

學習Ajax之前一定要回Json,不會的可以參考我的這篇文章↓
https://i.cnblogs.com/posts/edit;postId=13598088

  • AJAX = Asynchronous JavaScript and XML(非同步的JavaScript和XML)
  • AJAX是一種不需要重新載入整個網頁的情況下,能夠更新部分網頁的技術
  • Ajax不是一種新的程式語言,而是一種用於建立更好更快以及互動性更強的Web應用程式的技術
    在2005年,Google通過其Google Suggest使AJAX變得流行起來.
    GoogleSuggest使用AJAX創造出動態性極強的web介面:當您在谷歌的搜尋框輸入關鍵字時,JavaScript會把這些字元傳送到伺服器,然後伺服器會返回一個搜尋建議列表.

作用: 增強B/S體驗性

AJAX能幹啥?

註冊時,輸入應戶名自動監測使用者是否已經存在.
登入時,提示使用者名稱密碼錯誤
刪除資料行時,將行ID傳送到後臺,後臺資料庫中刪除,資料庫刪除成功後,在頁面DOM中將資料行也刪除

用頁面實現一個小栗子(偽Ajax)

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
<script type="text/javascript">
  window.onload = function f(){ //載入的時候執行的函式
  var myDate = new Date();
        document.getElementById('currentTime').innerText = myDate; //展示時間
    }
  function loadPage() {
  var targetURL = document.getElementById('url').value; //目標URl獲取值
        console.log(targetURL); //列印下url看看對不對
        document.getElementById('iframePosi').src = targetURL; //展示對應頁面
    }
</script>

<div>
 <p>輸入要載入的地址<span id="currentTime"></span></p>
 <p>
 <input type="text" id="url" value="https://www.Baidu.com/">
 <input type="button" value="提交" onclick="loadPage()">
 </p>
</div>

<div>
 <h3>
  載入頁面位置:
    </h3>
 <iframe style="width: 100%;height: 500px" id="iframePosi">

 </iframe>
</div>

</body>
</html>

AJAX的原理

上面是用頁面實現的,沒有用純JS實現Ajax,Ajax其本質是XMLHttpRequest(XHR)
Ajax的核心是(XHR).XHR為向伺服器傳送請求和解析伺服器響應提供了介面.能夠以非同步的方式從伺服器獲取新資料.
jQuery提供多個與Ajax有關的方法.
通過jQuery Ajax方法能夠使用HTTP get 和Http post從遠端伺服器上請求文字,HTML,XML或JSon-同時能夠把這些外部資料直接載入網頁的被選元素中.
jQuery不是生產者,而是大自然的搬運工
jQuery Ajax本質就是XMLHttpRequest,對他進行了封裝,方便呼叫!我們看下

使用jQuery

首先從官網下載.js檔案https://jquery.com/download/

兩種在客戶端和伺服器端進行請求-響應的常用方法是:GET 和 POST。

  • GET - 從指定的資源請求資料
  • POST - 向指定的資源提交要處理的資料

GET 基本上用於從伺服器獲得(取回)資料。註釋:GET 方法可能返回快取資料。

POST 也可用於從伺服器獲取資料。不過,POST 方法不會快取資料,並且常用於連同請求一起傳送資料。

如需學習更多有關 GET 和 POST 以及兩方法差異的知識,請閱讀我們的 HTTP 方法 - GET 對比 POST


jQuery - AJAX get() 和 post() 方法


jQuery get() 和 post() 方法用於通過 HTTP GET 或 POST 請求從伺服器請求資料。


HTTP 請求:GET vs. POST

jQuery $.get() 方法

$.get() 方法通過 HTTP GET 請求從伺服器上請求資料。

語法:

$.get(URL,callback);

必需的 URL 引數規定您希望請求的 URL。

可選的 callback 引數是請求成功後所執行的函式名。

下面的例子使用 $.get() 方法從伺服器上的一個檔案中取回資料:

例項

$("button").click(function(){
    $.get("demo_test.php",function(data,status){ 
        alert("資料: " + data + "\n狀態: " + status); }); });

嘗試一下 »

$.get() 的第一個引數是我們希望請求的 URL("demo_test.php")。

第二個引數是回撥函式。第一個回撥引數存有被請求頁面的內容,第二個回撥引數存有請求的狀態。

提示: 這個 PHP 檔案 ("demo_test.php") 類似這樣:

jQuery $.post() 方法

$.post() 方法通過 HTTP POST 請求向伺服器提交資料。

語法:

$.post(URL,data,callback);

必需的 URL 引數規定您希望請求的 URL。

可選的 data 引數規定連同請求傳送的資料。

可選的 callback 引數是請求成功後所執行的函式名。

下面的例子使用 $.post() 連同請求一起傳送資料:

例項

$("button").click(function(){ 
    $.post("/try/ajax/demo_test_post.php", {  
        name:"菜鳥教程", 
        url:"http://www.runoob.com"  }, 
        function(data,status){  
            alert("資料: \n" + data + "\n狀態: " + status);
        });
});

嘗試一下 »

$.post() 的第一個引數是我們希望請求的 URL ("demo_test_post.php")。

然後我們連同請求(name 和 url)一起傳送資料。

"demo_test_post.php" 中的 PHP 指令碼讀取這些引數,對它們進行處理,然後返回結果。

第三個引數是回撥函式。第一個回撥引數存有被請求頁面的內容,而第二個引數存有請求的狀態。



來自為知筆記(Wiz)