XML DOM - XMLHttpRequest လက်တွေ့

  • အရေးပါသော စာကြိုး DOM Text
  • နောက်ပိုင်း စာကြိုး DOM XMLSerializer

XMLHttpRequest အရာဝတ္တရာ

နှင့် XML စာတမ်းများကို အသုံးပြုခြင်းမှ ကွဲထွက်နိုင်သည်။ ပြီးတော့ အမည်ပုံ

အမည်ပုံ

XMLHttpRequest လက်တွေ့သည် အမည်အမျိုးအစား AJAX ဝက်ဆိုဒ် အသုံးပြုခြင်း၏ အခြေခံ အကျိုးဆက်များ တစ်ခုဖြစ်သည်။

ဘာသာပြန်လည်သုံးစွဲသူများ အတွက်

XMLHttpRequest ကို ယခုအခါ ဘာသာပြန်လည်သုံးစွဲသူများအတွက် အကူအညီပေးသည်။ ကိုယ်စားပြုခြင်းသည် XMLHttpRequest လက်တွေ့အားကို အခြေခံပြီး ရှိသည်။ IE 5 နှင့် IE 6 တွင် အတွက် IE ကို သတ်မှတ်ထားသော ActiveXObject() ကိုယ်စားပြုသုံးစွဲသင့်သည်။ သို့သော်လည်း XMLHttpRequest အရာဝတ္တရာ 这一节所介绍的。

W3C 标准化

XMLHttpRequest 对象还没有标准化,但是 W3C 已经开始了标准化的工作,本手册介绍的内容都是基于标准化的工作草案。

当前的 XMLHttpRequest 实现已经相当一致。但是和标准有细微的不同。例如,一个实现可能返回 null,而标准要求是空字符串,或者实现可能把 readyState 设置为 3 而不保证所有的响应头部都可用。

属性

readyState

HTTP 请求的状态.当一个 XMLHttpRequest 初次创建时,这个属性的值从 0 开始,直到接收到完整的 HTTP 响应,这个值增加到 4。

5 个状态中每一个都有一个相关联的非正式的名称,下表列出了状态、名称和含义:

状态 名称 描述
0 Uninitialized 初始化状态。XMLHttpRequest 对象已创建或已被 abort() 方法重置。
1 Open open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。
2 Sent Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。
3 Receiving 所有响应头部都已经接收到。响应体开始接收但未完成。
4 Loaded HTTP 响应已经完全接收。

readyState 的值不会递减,除非当一个请求在处理过程中的时候调用了 abort() 或 open() 方法。每次这个属性的值增加的时候,都会触发 onreadystatechange 事件句柄。

responseText

目前为止为服务器接收到的响应体(不包括头部),或者如果还没有接收到数据的话,就是空字符串。

readyState အရှိန် 3 ထက် ပိုသော အခါ အကိုးး အမှတ် သည် အမှတ် 0 ဖြစ်သည်။ ယခင်က readyState 3 ဖြစ်ခဲ့သော အခါ အကိုးး အမှတ် သည် ယခင်က အသုံးပြုခဲ့သော အချက်အလက် အချို့ ကို အောက်ခံ ပြုလုပ်ခြင်း ကို အပြန် ပေးသည်။ ယခင်က readyState 4 ဖြစ်ခဲ့သော အခါ အကိုးး အမှတ် သည် အချက်အလက် အချို့ ကို အပြန် ပေးသည်

တိုက်ရိုက် အထောက်ထားခြင်း အရ တိုက်ရိုက် အသုံးပြုရသော စကားလုံး အောက်ခံ အချက်အလက် အရ အောက်ခံ ပြုလုပ်ခြင်း သို့မဟုတ် အခြား အသုံးပြုရသော စကားလုံး အရ အောက်ခံ ပြုလုပ်ခြင်း သို့မဟုတ် အခြား အသုံးပြုရသော စကားလုံး အရ အောက်ခံ ပြုလုပ်ခြင်း

responseXML

တောင်းဆိုမှု တိုက်ရိုက် အထောက်ထားခြင်း ကို XML အဖြစ် ပြန်ပြင်ဆင်ဆင်ခြင်း ဆိုင်းများ အား返回。

status

由服务器返回的 HTTP 状态代码,如 200 表示成功,而 404 表示 "Not Found" 错误。当 readyState 小于 3 的时候读取这一属性会导致一个异常。

statusText

这个属性用名称而不是数字指定了请求的 HTTP 的状态代码。也就是说,当状态为 200 的时候它是 "OK",当状态为 404 的时候它是 "Not Found"。和 status 属性一样,当 readyState 小于 3 的时候读取这一属性会导致一个异常。

事件句柄

onreadystatechange

每次 readyState 属性改变的时候调用的事件句柄函数。当 readyState 为 3 时,它也可能调用多次。

方法

abort()

取消当前响应,关闭连接并且结束任何未决的网络活动。

这个方法把 XMLHttpRequest 对象重置为 readyState 为 0 的状态,并且取消所有未决的网络活动。例如,如果请求用了太长时间,而且响应不再必要的时候,可以调用这个方法。

getAllResponseHeaders()

把 HTTP 响应头部作为未解析的字符串返回。

如果 readyState 小于 3,这个方法返回 null。否则,它返回服务器发送的所有 HTTP 响应的头部。头部作为单个的字符串返回,一行一个头部。每行用换行符 "\r\n" 隔开。

getResponseHeader()

返回指定的 HTTP 响应头部的值。其参数是要返回的 HTTP 响应头部的名称。可以使用任何大小写来制定这个头部名字,和响应头部的比较是不区分大小写的。

该方法的返回值是指定的 HTTP 响应头部的值,如果没有接收到这个头部或者 readyState 小于 3 则为空字符串。如果接收到多个有指定名称的头部,这个头部的值被连接起来并返回,使用逗号和空格分隔开各个头部的值。

open()

HTTP ေးခွန်း စက်မှု သုံးစွဲ လုပ်ကြမ်း အချက်အလက် ကို စတင်ပြုလုပ် ပြီး အိမ်ဖုံး သည် ဖြစ် သော်လည်း ေးခွန်း ကို ပေးပို့လိမ့်မယ်။

send()

open() စက်မှု သို့ အပြုအမူ သုံးစွဲ လုပ်ကြမ်းသည် နှင့် အသုံးပြုပြီး သူ့ကို ပြုလုပ် သည် အတူ အသုံးပြု လုပ်ကြမ်း အသုံးပြု လုပ်ကြမ်း ပြုလုပ်ကြမ်း ပေးသည်။

setRequestHeader()

ဖွန်းခဲ့သော သို့မဟုတ် ပေးပို့လိမ့်မယ် မေးခွန်း တစ်ခု သို့ ကိုယ်စားပြု လုပ်ကြမ်း သို့မဟုတ် အသုံးပြုပြီး ပြီးစဉ် ကို HTTP ေးခွန်း တစ်ခု ထပ်ပေးပြီး ပြီးဖြစ်သည်။

XMLHttpRequest.open()

HTTP အမေးယူပုံ အက်စ် ပါဝင်ခြင်း ကို စတင်ပြီး

ဘာသာစကား

open(method, url, async, username, password)

method အက်စ် ပါဝင်ခြင်း က အမေးယူပုံ အား အသုံးပြုရာ အမေးယူပုံ ဖြစ်သည်။ အချို့ အမေးယူပုံ ဖြစ်သည်။

url အက်စ် ပါဝင်ခြင်း က အမေးယူပုံ အား ဖြစ်သည်။ အချို့ ဘာသာ အက်စ် ပါဝင်ခြင်း များ တွင် အခြား အခြား အက်စ် ပါဝင်ခြင်း မရှိပေ။

async အက်စ် ပါဝင်ခြင်း က အမေးယူပုံ အား အခြေခံ အခြေခံ ဖြစ်သည်။ အခြား အက်စ် ပါဝင်ခြင်း မဟုတ် အခြား အက်စ် ပါဝင်ခြင်း ဖြစ်သည်၌ အမေးယူပုံ အား အခြေခံ အခြေခံ ဖြစ်သည်။

username နှင့် password အက်စ် ပါဝင်ခြင်း များ ကို ဆိုင်းပြုခြင်း မရှိပေ။ ထို အက်စ် ပါဝင်ခြင်း တွင် အမှတ်အသား အခြေခံ ဖြစ်သည်။ ထို အက်စ် ပါဝင်ခြင်း တွင် အမှတ်အသား အခြေခံ ဖြစ်သည်။

အကြောင်းကြားချက်

send() စနစ် အသုံးပြုရာ အက်စ် ပါဝင်ခြင်း နှင့် အခြား စနစ် ပါဝင်ခြင်း ကို ချိန်ချဲ့ သုံးပြုခြင်း မရှိပေ။

send() စနစ် အသုံးပြုရာ အက်စ် ပါဝင်ခြင်း နှင့် အခြား စနစ် ပါဝင်ခြင်း ကို ချိန်ချဲ့ သုံးပြုခြင်း မရှိပေ။ အမှန်တကယ်၍ အခြား အက်စ် ပါဝင်ခြင်း မရှိပေ။

XMLHttpRequest.send()

အမေးယူပုံ HTTP အမှတ်အသား ကို ပေးပို့ပါ

ဘာသာစကား

send(body)

open() ကို အသုံးပြု၍ အမေးယူပုံ ဖြစ်သည်၌ အမေးယူပုံ ဖြစ်သည်၌ အားကစားအား အမှတ်အသား ဖြစ်သည်။ အခြား အမေးယူပုံ ဖြစ်သည်၌ အားကစားအား အမှတ်အသား ဖြစ်သည်။ ဆိုင်းများ အားကိုင်းတုံးအား လုပ်ကြံမှာ အခြေအနေ မဟုတ် အခါ၌ အက်စ် ဖြစ်သည်။ အခြား မည်သည့် စနစ် ကို အသုံးပြုရာ၌ အက်စ် ပါဝင်ခြင်း မရှိပေ။ အချို့ သုံးပြုမှုများ တွင် အက်စ် ကို ပယ်ဖျက်ခြင်း မလုပ်နိုင်ပေ။

အကြောင်းကြားချက်

这个方法导致一个 HTTP 请求发送。如果之前没有调用 open(),或者更具体地说,如果 readyState 不是 1,send() 抛出一个异常。否则,它发送一个 HTTP 请求,该请求由以下几部分组成:

  • 之前调用 open() 时指定的 HTTP 方法、URL 以及认证资格(如果有的话)。
  • 之前调用 setRequestHeader() 时指定的请求头部(如果有的话)。
  • 传递给这个方法的 body 参数。

一旦请求发布了,send() 把 readyState 设置为 2,并触发 onreadystatechange 事件句柄。

如果之前调用的 open() 参数 async 为 false,这个方法会阻塞并不会返回,直到 readyState 为 4 并且服务器的响应被完全接收。否则,如果 async 参数为 true,或者这个参数省略了,send() 立即返回,并且正如后面所介绍的,服务器响应将在一个后台线程中处理。

如果服务器响应带有一个 HTTP 重定向,send() 方法或后台线程自动遵从重定向。当所有的 HTTP 响应头部已经接收,send() 或后台线程把 readyState 设置为 3 并触发 onreadystatechange 事件句柄。如果响应较长,send() 或后台线程可能在状态 3 中触发 onreadystatechange 事件句柄:这可以作为一个下载进度指示器。最后,当响应完成,send() 或后台线程把 readyState 设置为 4,并最后一次触发事件句柄。

XMLHttpRequest.setRequestHeader()

ဘာသာစကား

setRequestHeader(name, value)

name ပါး သည် အသိအမှတ်ပြုထား ရန် အရာရှိ ပိုင်း အမည် ဖြစ်သည်။ အချက်အလက် အရာရှိ ပိုင်း ကို အသိအမှတ်ပြုထား နိုင် သော အခါ အချက်အလက် အရာရှိ ပိုင်း ကို အသုံးပြု သော အခါ အသုံးပြု သော အရွတ်ဖြင့် အချိန်မှန် ကို အသိအမှတ်ပြုထားပါသည်。

value ပါး သည် အချက်အလက် အရာရှိ ပိုင်း အတွက် အရာဖြစ်သည်။ အချက်အလက် အရာရှိ ပိုင်း ကို အသုံးပြု သော အခါ အသုံးပြုထား သည် အသုံးပြု သော အရွတ်ဖြင့် အချိန်မှန် ကို အသိအမှတ်ပြုထားပါသည်。

အကြောင်းကြားချက်

setRequestHeader() ဘက်တုံး ဘက်တုံး အမြန်ဆန်သော အက်စ်တီးယား အချက်အလက် အရာရှိ ပိုင်း ကို အသိအမှတ်ပြုထားပါသည်။ အက်စ်တီးယား ဘက်တုံး ဘက်တုံး ကို ထုတ်ပြန်ထား ပြီး အပြီးသတ် အက်စ်တီးယား ဘက်တုံး ဘက်တုံး ကို အသိအမှတ်ပြုထားပါသည်။ အက်စ်တီးယား ဘက်တုံး ဘက်တုံး ကို အသိအမှတ်ပြုထား နိုင်သော အခါ သည် readyState 1 ဖြစ် သော်လည်း အသိအမှတ်ပြုထားပါသည်။ အမည်ဖြင့် အသိအမှတ်ပြုထား ပြီး အပြီးသတ် အက်စ်တီးယား ဘက်တုံး ဘက်တုံး ကို အသိအမှတ်ပြုထား ပါသည်。

ရှိသော အမည်ဖြင့် အရာရှိ ပိုင်း သည် အမည်ဖြင့် အသိအမှတ်ပြုထားခဲ့သော် အရာရှိ ပိုင်း အတိုင်း အသစ် သည် အမည်ဖြင့် အသိအမှတ်ပြုထားခဲ့ခြင်း နှင့် အရွတ်ဖြင့် အချိန်မှန် နှင့် အသစ် အရာရှိ ပိုင်း အမှတ်ပြုထားခဲ့ခြင်း ပေါင်းစပ်ထားပါသည်。

如果 open() 调用指定了认证资格,XMLHttpRequest 自动发送一个适当的 Authorization 请求头部。但是,你可以使用 setRequestHeader() 来添加这个头部。类似地,如果 Web 服务器已经保存了和传递给 open() 的 URL 相关联的 cookie,适当的 Cookie 或 Cookie2 头部也自动地包含到请求中。可以通过调用 setRequestHeader() 来把这些 cookie 添加到头部。XMLHttpRequest 也可以为 User-Agent 头部提供一个默认值。如果它这么做,你为该头部指定的任何值都会添加到这个默认值后面。

အချို့ တောင်းဆိုချက် အချို့က XMLHttpRequest က အားကစားအက်ဥ်အား ဖြင့် သတ်မှတ်ထားခြင်း မပါ၊ အမှုကြမ်း ဖြင့် သတ်မှတ်ထားခြင်း ဖြစ်သည်။ အဆိုပါ အချို့က အားကစားအက်ဥ်အား ဖြင့် သတ်မှတ်ထားခြင်း သည် အားကစားအက်ဥ်အား ဖြင့် သတ်မှတ်ထားခြင်း ဖြစ်သည်။

  • Host
  • Connection
  • Keep-Alive
  • Accept-charset
  • Accept-Encoding
  • If-Modified-Since
  • If-None-Match
  • If-Range
  • Range
  • အရေးပါသော စာကြိုး DOM Text
  • နောက်ပိုင်း စာကြိုး DOM XMLSerializer