Ajax非同步重新整理功能及簡單案例

2022-09-20 09:51:16 字數 3508 閱讀 4878

目錄

這篇文章主要來介紹一下有關ajax中非同步重新整理的知識,以及乙個簡單的註冊案例。

我們都知道,非同步重新整理是ajax中非常重要的乙個功能,下面我們先來了解一下關於非同步重新整理的方法步驟以及理解。

在這裡我們首先說一下關於$_get請求和$_post請求 。

方法:open(method,url,async)

send(string)

其中,規定請求的型別、url 以及是否非同步處理請求。

將請求傳送到伺服器。

方法:xmlhttp.open("get","ajax_info.txt",true);

有關 get 請求的其他一些注釋:

方法:xmlhttp.open("post","/try/ajax/程式設計客棧demo_post.php",true);

有關 post 請求的其他一些注釋:

總結一下,就是

get在瀏覽器回退時是無害的,而post會再次提交請求

get產生的url位址可以被bookmark,而post不可以

get請求會被瀏覽器主動cache,而post不會,除非手動設定。

get請求只能進行url編碼,而post支援多種編碼方式。

get請求引數會被完整保留在瀏覽器歷史記錄裡,而post中的引數不會被保留。

get請求在url中傳送的引數是有長度限制的,而post麼有。

對引數的資料型別,get只接受ascii字元,而post沒有限制

get比post更不安全,因為引數直接暴露在url上,所以不能用來傳遞敏感資訊。

get引數通過url傳遞,post放在request body中。

在下面的案例中我們兩種方法都會用到,大家可以觀察兩者的區別。

在這一節的**中用到的格式為

if(xhr.readystate == 4)else}}

那麼其中的readystate和status是什麼意思呢?

xmlhttp.readystate的值及解釋:

0:請求未初始化(還沒有呼叫 open())。

1:請求已經建立,但是還沒有傳送(還沒有呼叫 send())。

2:請求已傳送,正在處理中(通常現在可以從響應中獲取內容頭)。

3:請求在處理中;通常響應中已有部分資料可用了,但是伺服器還沒有完成響應的生成。

4:響應已完成;您可以獲取並使用伺服器的響應了。

xmlhttp.status的值及解釋:

100——客戶必須繼續發出請求

101——客戶要求伺服器根據請求轉換http協議版本

200——交易成功

201——提示知道新檔案的url

202——接受和處理、但處理未完成

203——返回資訊不確定或不完整

204——請求收到,但返回資訊為空

205——伺服器完成了請求,使用者**必須復位當前已經瀏覽過的檔案

206——伺服器已經完成了部分使用者的get請求

300——請求的資源可在多處得到

301——刪除請求資料

302——在其他位址發現了請求資料

303——建議客戶訪問其他url或訪問方式

304——客戶端已經執行了get,但檔案未變化

305——請求的資源必須從伺服器指定的位址得到

306——前一版本http中使用的**,現行版本中不再使用

307——申明請求的資源臨時性刪除

400——錯誤請求,如語法錯誤

401——請求授權失敗

402——保留有效chargeto頭響應

403——請求不允許

404——沒有發現檔案、查詢或url

405——使用者在request-line欄位定義的方法不允許

406——根據使用者傳送的accept拖,請求資源不可訪問

407——類似401,使用者必須首先在**伺服器上得到授權

408——客戶端沒有在使用者指定的餓時間內完成請求

409——對當前資源狀態,請求不能完成

410——伺服器上不再有此資源且無進一步的參考位址

411——伺服器拒絕使用者定義的content-length屬性請求

412——乙個或多個請求頭字段在當前請求中錯誤

413——請求的資源大於伺服器允許的大小

414——請求的資源url長於伺服器允許的長度

415——請求資源不支援請求專案格式

416——請求中包含range請求頭欄位,在當前請求資源範圍內沒有range指示值,請求也不包含if-range請求頭欄位

417——伺服器不滿足請求expect頭欄位指定的期望值,如果是**伺服器,可能是下一級伺服器不能滿足請求 

合起來500——伺服器產生內部錯誤

501——伺服器不支援請求的函式

502——伺服器暫時不可用,有時是為了防止發生系統過載

503——伺服器過載或暫停維修

504——關口過載,伺服器使用另乙個關口或服務來響應使用者,等待時間設定值較長

505——伺服器不支援或拒絕支請求頭中指定的http版本

1xx:資訊響應類,表示接收到請求並且繼續處理

2xx:處理成功響應類,表示動作被成功接收、理解和接受

3xx:重定向響應類,為了完成指定的動作,必須接受進一步處理

4xx:客戶端錯誤,客戶請求包含語法錯誤或者是不能正確執行

5xx:服務端錯誤,伺服器不能正確執行乙個正確的請求

xmlhttp.readystate==4 && xmlhttp.status==200的解釋:請求完成並且成功返回

這裡都是固定寫法,可以不用記,甚至在**中可以不寫

onblur 事件會在物件失去焦點時發生。

username.onblur = function(){}

意思就是當滑鼠游標從當前目標上離開並且點選了別的地方,則會執行function中的操作。

如果我們輸入的資訊合法,且在資料庫中查詢後可以使用

如果我們輸入的資訊在資料庫中已經有了,比如暱稱已被使用或手機號已被使用

當然在這裡我們並沒有使用資料庫,而是在php**中使用了if...else語句進行簡單的判斷。

接下來我們來看最重要的----**部分

wellfancy

<?php $username = $_get["uname"];

if($username == 'wellfancy') else

?>

<?php $email = $_post["e"];

if($email == '[email protected]') else

?>

<?php $phone = $_post["phonenumber"];

if ($phone == '110') ';

} else }';}

?>

這樣乙個關於ajax非同步重新整理的簡易案例就完成了,是不是通俗易懂呢?(滑稽)

Ajax非同步重新整理分頁功能 MySQL

1.servlet中 條件map map map new hashmap 分頁配置 int index request.getparameter index null?1 integer.parseint request.getparameter index int size 2 map.put i...

ajax非同步重新整理簡單的demo

說明 本案例是在瀏覽器中區域性重新整理物件people的age屬性的值 1.首先建立乙個people類 package com.jsf.demo1 public class people public void setname string name public int getage public...

AJAX 非同步重新整理技術

大家都知道,可以用表單把jsp頁面的值提交到後台,但是還有另外一種方式,就是用ajax 非同步重新整理技術 把jsp頁面提交到後台,今天我就給大家講講如何用ajax 非同步重新整理技術 把jsp頁面提交到後台,他們兩個其實是一起用的,你不用ajax的時候你的表單裡面只能有乙個提交按鈕,多個的話就無法...