js021-Ajax與Comet

js021-AjaxCometphp

本章內容:html

使用XMLHttpRequet對象跨域

使用XMLHttpRequet事件瀏覽器

跨域Ajax通訊的限制服務器

 

Ajax技術的核心是XMLHttpRequet對象cookie

 

21.1 XMLHttpRequet對象app

建立XHR對象:異步

var xhr = createXHR();ide

 

21.1.1 XHR用法post

在使用XHR對象是,調用的第一個方法是open().該方法接收三個參數:要發送請求的類型(「get」、」post」 等 ),請求的URL和表示是否異步發送請求的布爾值。

xhr.open("get", "example.php", fasle);

調用open()方法並不會真正發送請求,而是啓動一個請求一備發送

 

要發送特定請求,要像以下調用send()方法

xhr.open("get", "example.txt", fasle);

xht.send(null);

send()方法接收一個參數:要做爲請求主題發送的數據,若是不須要經過請求主發送數據則用null。

由於該請求是同步的,JS代碼會等到服務器響應後才繼續執行

 

21.1.2 HTTP頭部信息

默認狀況下,在發送XHR請求的同時,還會發送下列頭部信息:

頭部信息

說明

Accept

瀏覽器可以處理的內容類型

Acce-pt-Charset

瀏覽器可以顯示的字符集

Accept-Encoding

瀏覽器可以處理的壓縮編碼

Accept-Language

瀏覽器當前設置的語言

Connection

瀏覽器與服務器之間的鏈接類型

Cookie

當前頁面設置的任何Cookie

Host

發出請求的頁面所在的域

Referer

發出請求的頁面的URI

User-Agent

瀏覽器的用戶代理字符串

 

21.1.3 GET請求

使用get請求時常常會發生錯誤:查詢字符串的格式有問題。

查詢字符串的沒個參數名稱和值都必須使用encodeURIComponent()進行編碼,而後才能放到url的末尾。並且全部的名-值對都必須用和號(&)分開。

xhr.open("get", "example.php", name1 = value1&name2 = value2);

 

21.1.4 post請求

用於向服務器發送應該被保存的數據。Post應該把數據做爲請求的主題提交,get請求傳統上不是這樣的。Post方法能夠傳入多個參數,且格式不限。

發送post請求的第二部是想sent()方法中傳入某些數據。

 

21.2 XMLHttpRequest 2

21.2.1 formdata

表單數據序列化。

Formdata爲序列化表單以及建立與表單格式相同過得數據提供便利。以下建立了一個formdata對象,並向其添加了一些數據:

var data = new FormData();

data.append ("name", "meimei");

append()方法接收兩個參數:鍵和值。分別對應表單字段的名字和字段中包含的值。能夠添加任意多個鍵值對。

 

21.2.2 超時設定

Timetout 屬性,表示請求在等待相應多少好秒後就終止。在給timeout設置一個數值後,若是在規定的事件內瀏覽器尚未接收到響應,那麼就會觸發timeout事件,進而會調用ontimeout事件處理程序。

 

21.2.3 overrideMimeType()方法

調用該方法必須在send()方法以前,才能保證重寫相應的MIME類型。

 

21.3 進度事件

有如下6個進度事件:

事件

說明

loadstart

在接收到響應數據的第一個字節時觸發

progress

在接收響應期間持續不斷的觸發

error

在請求發生錯誤是觸發

abort

在由於調用abort()方法而終止鏈接時觸發

load

在接收到完整的相應數據時觸發

loadend

在通訊完成或者觸發error、abort或load事件後觸發。

 

21.3.1 load事件

21.3.2 progress事件

 

 

 

 

21.4 跨資源共享

21.4.1 IE對CORS 的實現

XDR(XDomainRequest)類型,該對象與XHR類似。如下是XDR和XHR之間的不一樣之處

cookie不會隨請求發送,也不會隨響應器返回;

只能設置請求頭部信息中的Content-Type字段;

不能訪問響應頭部信息

只支持get和post請求

 

 

本章看不下去了,週四前再來補上來

 

 

 

原文地址:http://www.cnblogs.com/lal-fighting/p/5164165.html

相關文章
相關標籤/搜索