目錄
這篇文章主要來介紹一下有關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的時候你的表單裡面只能有乙個提交按鈕,多個的話就無法...