1. 程式人生 > >使用ajax前必須瞭解的知識

使用ajax前必須瞭解的知識

ajax的全稱:
asynchronous javascript and xml
(非同步的javascript和xml)

ajax不是某種程式語言
是一種在無需重新載入整個頁面的情況下能夠更新部分網頁的技術。

一個完整的http請求過程,有7個步驟:
1.建立TCP連線。
2.Web瀏覽器向Web伺服器傳送請求命令。
3.Web瀏覽器傳送請求頭資訊。
4.Web伺服器應答。
5.Web伺服器傳送應答頭資訊。
6.Web伺服器向瀏覽器傳送資料。
7.Web伺服器關閉TCP連線

一個http請求一般由四部分組成:
1.http請求的方法或動作,比如是GET還是POST請求。
2.正在請求的URL。
3.請求頭,包含一些客戶端環境資訊,身份驗證資訊等。
4.請求體,也就是請求正文,請求正文中可以包含客戶的提交的查詢字串資訊,表單資訊等等。

GET:(冪等:就是一個GET請求執行一次和執行一萬次的效果是一樣的)
1.一般用於資訊獲取(查詢),
2.使用URL傳遞引數,
3.對傳送的資訊的數量有限制,一般在2000個字元。
4.好處就是可以新增到書籤中收藏頁面。

POST:
1.一般用於修改伺服器上的資源,
2.對所傳送的資訊的數量無限制,
3.被嵌入到http的請求體中。

一個http響應一般麼由三部分組成:
1.一個數字和文字組成的狀態碼,用來顯示請求是成功還是失敗,
2.響應頭,響應頭也和請求頭一樣包含許多有用的資訊,例如服務型別,日期時間,內容型別和長度等,
3.響應體:也就是響應正文

http狀態碼由32位數字構成,其中首位數字定義了狀態碼的型別:
1XX:資訊類,表示收到Web瀏覽器請求,正在進一步處理中,
2XX:成功,表示使用者請求被正確接受,理解和處理,例如:200 OK
3XX:重定向,表示請求沒有成功,客戶必須採取進一步的動作,
4XX:客戶端錯誤,表示客戶端提交請求有錯誤,例如:404 NOT Found,意味著請求中所引用的文件不存在,
5XX:伺服器錯誤,表示伺服器不能完成對請求的處理,例如:500

JSON的基本概念
1.json:javasscript物件表示法,(javascript Object Notation)
2.json是儲存和交換文字資訊的語法,類似XML。它採用鍵值對的方式來組織,易於人們閱讀,同時也易於機器解析和生成。
3.json是獨立於語言的,也就是不管什麼語言,都可以解析json,只需要按照json的規則來就行。

json和xml比較
1.json的長度和xml格式比起來很短小。
2.json讀寫的速度更快
3.json可以使用javascript內建德方法直接進行解析,轉換成javascript物件,非常方便。

json可以是下面型別:
1.數字(整數或浮點數),比如123,1.23.
2.字串(在雙引號中)
3.邏輯值(true或false)
4.陣列(在方括號中)
5.物件(在花括號中)
6.null

解析json的方法:
1.var jsondata = {“staff”:[{“name”:”紅旗”,”age”:”23”},{“name”:”小紅”,”age”:”13”}]};
var jsonbj = JSON.parse(jsondata);
alert(jsonbj.staff[0].name)

使用jquery實現ajax
1.jQuery.ajax([settings])
2.type:型別,”POST”或”GET”,預設為”GET”。
3.url:傳送請求的地址。
4.dataType:預期伺服器返回的資料型別,如果不指定,jquery將自動根據http包MIME資訊來智慧判斷,一般我們採用json格式,可以設定為”json”。
5.success:是一個方法,請求成功後的回撥函式,傳入返回後的資料,以及包含嗎成功程式碼的字串。
6.error:是一個方法,請求失敗 時回撥用此函式。傳入XMLHttpRequest物件。

跨域
1.一個域名的地址組成:
協議,子域名,主域名,埠號中任意一個不相同時,都算作不同域,
2.不同域之間相互請求資源,就算作”跨域”,
3.比如http://www.abc.com/index.html 請求 http://www.egf.com/service.php
4.jsvsscript出於安全方面的考慮,不允許跨域呼叫其他頁面的物件,什麼是跨域呢,簡單的理解就是因為javascript同源策略的限制,a.com域名下的js無法操作b.com或是c.a.com域名下的物件。
5.例如www.abc.com/index.html呼叫https://www.abc.com/servic.php(跨域)

處理跨域的方法–代理
1.通過在同域名的web伺服器端建立一個代理
2.北京伺服器(域名:www.beijing.com)
3.上海伺服器(域名:www.shanghai.com)
4.比如北京的web伺服器的後臺(www.beijing)