江西省進(jìn)賢網(wǎng)站建設(shè)公司-進(jìn)賢專業(yè)網(wǎng)頁(yè)設(shè)計(jì)公司-進(jìn)賢高端網(wǎng)站制作-進(jìn)賢品牌網(wǎng)站設(shè)計(jì)-進(jìn)賢頁(yè)面美工-進(jìn)賢上檔次網(wǎng)站建設(shè)-進(jìn)賢定制個(gè)性化網(wǎng)站開發(fā)-進(jìn)賢一站式一條龍網(wǎng)站搭建開發(fā)-進(jìn)賢一站式一條龍網(wǎng)站搭建
為了發(fā)送一個(gè)請(qǐng)求到服務(wù)器,我們使用 XMLHttpRequest 對(duì)象的 open() 和 send() 方法:
方法 | 描述 |
---|---|
open(method,url,async) | 規(guī)定請(qǐng)求的類型,URL,請(qǐng)求是否應(yīng)該進(jìn)行異步處理。 method:請(qǐng)求的類型:GET 或 POST url:文件在服務(wù)器上的位置 async:true(異步)或 false(同步) |
send(string) | 發(fā)送請(qǐng)求到服務(wù)器。 string:僅用于 POST 請(qǐng)求 |
GET 比 POST 簡(jiǎn)單并且快速,可用于大多數(shù)情況下。
然而,下面的情況下請(qǐng)始終使用 POST 請(qǐng)求:
緩存的文件不是一個(gè)選項(xiàng)(更新服務(wù)器上的文件或數(shù)據(jù)庫(kù))
發(fā)送到服務(wù)器的數(shù)據(jù)量較大(POST 沒有大小的限制)
發(fā)送用戶輸入(可以包含未知字符),POST 比 GET 更強(qiáng)大更安全
open() 方法的 url 參數(shù),是一個(gè)在服務(wù)器上的文件的地址:
該文件可以是任何類型的文件(如 .txt 和 .xml),或服務(wù)器腳本文件(如.html 和 .php,可在發(fā)送回響應(yīng)之前在服務(wù)器上執(zhí)行動(dòng)作)。
如需異步發(fā)送請(qǐng)求,open() 方法的 async 參數(shù)必需設(shè)置為 true:
發(fā)送異步請(qǐng)求對(duì)于 Web 開發(fā)人員是一個(gè)巨大的進(jìn)步。在服務(wù)器上執(zhí)行的許多任務(wù)非常費(fèi)時(shí)。
通過異步發(fā)送,JavaScript 不需要等待服務(wù)器的響應(yīng),但可以替換為:
等待服務(wù)器的響應(yīng)時(shí),執(zhí)行其他腳本
響應(yīng)準(zhǔn)備時(shí)處理響應(yīng)
當(dāng)使用 async=true 時(shí),在 onreadystatechange 事件中響應(yīng)準(zhǔn)備時(shí)規(guī)定一個(gè)要執(zhí)行的函數(shù):
如需使用 async=false,請(qǐng)更改 open() 方法的第三個(gè)參數(shù)為 false:
不推薦使用 async=false,但如果處理幾個(gè)小的請(qǐng)求還是可以的。
請(qǐng)記住,JavaScript 在服務(wù)器響應(yīng)準(zhǔn)備之前不會(huì)繼續(xù)執(zhí)行。如果服務(wù)器正忙或緩慢,應(yīng)用程序?qū)炱鸹蛲V埂?/p>
注意:當(dāng)您使用 async=false 時(shí),不要編寫 onreadystatechange 函數(shù) - 只需要把代碼放置在 send() 語句之后即可:
江西省進(jìn)賢網(wǎng)站建設(shè)公司-進(jìn)賢專業(yè)網(wǎng)頁(yè)設(shè)計(jì)公司-進(jìn)賢高端網(wǎng)站制作-進(jìn)賢品牌網(wǎng)站設(shè)計(jì)-進(jìn)賢頁(yè)面美工-進(jìn)賢上檔次網(wǎng)站建設(shè)-進(jìn)賢定制個(gè)性化網(wǎng)站開發(fā)-進(jìn)賢一站式一條龍網(wǎng)站搭建開發(fā)-進(jìn)賢一站式一條龍網(wǎng)站搭建