ບັນດາຫົວອົງ XMLHttpRequest
- ກ່ອນໜ້າ DOM ສ້າງຫນັງຖືກຈັດຕັ້ງ
- ຕໍ່ໜ້າ ລາຍການຄູ່ມາຂອງ DOM
XMLHttpRequest ໂອຍເກວນສະບາຍສະໜອງວິທີການສຳພັດກັບທະນາຄານຫຼັງຈາກການເລີ່ມອອກເວັບໄຊ.
ຫຍັງ XMLHttpRequest ໂອຍເກວນສະບາຍ?
XMLHttpRequest ໂອຍເກວນສະບາຍຄວາມຝັນຂອງນັກພັດທະນາ.ຍ້ອນວ່າ ພວກເຮົາສາມາດ:
- ປັບສະແດງບູບຫຼັງຈາກບູບໄດ້ອອກສຽງຂອງບູບບໍ່ອອກສຽງອີກ.
- ຮັບຂໍ້ມູນຈາກບູບຫຼັງຈາກບູບໄດ້ອອກສຽງ.
- ຮັບຂໍ້ມູນຈາກບູບຫຼັງຈາກບູບໄດ້ອອກສຽງ.
- ສົ່ງຂໍ້ມູນໄປຫາບູບດ້ວຍທາງຫຼັງການ.
ທຸກເຄື່ອງຫຼິ້ນໃໝ່ທັງໝົດສາມາດສະໜັບສະໜູນ XMLHTTP ໂອລເຈັກ.
ຄວາມຄິດເຫັນ:ສຳລັບການສັງເກດ XML HTTP ກັບບູບທີ່ຖືກກວດສອບ..
ສ້າງ XMLHTTP ໂອລເຈັກ
ພຽງແຕ່ການຂຽນ JavaScript ຄົນດຽວຫຼັງຈາກນັ້ນພວກເຮົາສາມາດສ້າງ XMLHTTP ໂອລເຈັກ.
ໃນທຸກເຄື່ອງຫຼິ້ນໃໝ່ (ເຄື່ອງຫຼິ້ນ IE 7 ກວ່າ):
xmlhttp=new XMLHttpRequest();
ໃນ Internet Explorer 5 ແລະ 6:
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
ຄວາມຄິດເຫັນ:
<script type="text/javascript"> var xmlhttp; function loadXMLDoc(url) { xmlhttp=null; if (window.XMLHttpRequest) {// ການຂຽນສຳລັບທຸກເຄື່ອງຫຼິ້ນໃໝ່} xmlhttp=new XMLHttpRequest(); } else if (window.ActiveXObject) {// ການຂຽນສຳລັບ IE5 ແລະ IE6} xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } if (xmlhttp!=null) { xmlhttp.onreadystatechange=state_Change; xmlhttp.open("GET",url,true); xmlhttp.send(null); } else { alert("Your browser does not support XMLHTTP."); } } function state_Change() { if (xmlhttp.readyState==4) {// 4 = "loaded"} if (xmlhttp.status==200) {// 200 = OK} // ...ການຂຽນຂອງພວກເຮົາຢູ່ນັບນັ້ນ... } else { alert("ຄວາມຜິດພາດໃນການເກັບຂໍ້ມູນ XML"); } } } </script>
ຄວາມຄິດເຫັນ:onreadystatechange ແມ່ນຜູ້ຄຸມເຫດການ。ຄຸນຂອງມັນ (state_Change) ແມ່ນຊື່ຂອງການຫຼິ້ນປະຕິບັດຫຼັງຈາກ XMLHTTP ໂອລເຈັກຂອງມັນໄດ້ປ່ຽນສະຖານະສະຖານ. ສະຖານະຈາກ 0 (uninitialized) ຫາ 4 (complete) ກວມເອົາ. ພຽງແຕ່ໃນສະຖານະ 4 ພວກເຮົາຈະເຮັດການ.
为什么使用 Async=true ?
我们的实例在 open() 的第三个参数中使用了 "true"。
该参数规定请求是否异步处理。
True 表示脚本会在 send() 方法之后继续执行,而不等待来自服务器的响应。
onreadystatechange 事件使代码复杂化了。但是这是在没有得到服务器响应的情况下,防止代码停止的最安全的方法。
通过把该参数设置为 "false",可以省去额外的 onreadystatechange 代码。如果在请求失败时是否执行其余的代码无关紧要,那么可以使用这个参数。
XML / ASP
您也可以把 XML 文档打开并发送到服务器上的 ASP 页面,分析此请求,然后传回结果。
<html> <body> <script type="text/javascript"> xmlHttp=null; if (window.XMLHttpRequest) //{ code for IE7, Firefox, Opera, etc. xmlHttp=new XMLHttpRequest(); } else if (window.ActiveXObject) //{ code for IE6, IE5 xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } if (xmlHttp!=null) { xmlHttp.open("GET", "note.xml", false); xmlHttp.send(null); xmlDoc=xmlHttp.responseText; xmlHttp.open("POST", "demo_dom_http.asp", false); xmlHttp.send(xmlDoc); document.write(xmlHttp.responseText); } else { alert("Your browser does not support XMLHTTP."); } </script> </body> </html>
ASP ເວັບໄຊ, ຂຽນໂດຍ VBScript:
<% set xmldoc = Server.CreateObject("Microsoft.XMLDOM") xmldoc.async=false xmldoc.load(request) for each x in xmldoc.documentElement.childNodes if x.NodeName = "to" then name=x.text next response.write(name) %>
ຜ່ານການນຳໃຊ້ response.write ພະຍາຍາມຕົວຫາບູຊີເລີ້ທີ່ຢູ່ທີ່ຄວາມສົມທອງ.
XMLHttpRequest ໂອອລເຈັກຕົວ ແມ່ນສະເພາະສັບສຳລັບ W3C ບໍ່?
ບໍ່ມີການແນະນຳຂອງ W3C ທີ່ກ່ຽວກັບ XMLHttpRequest ໂອອລເຈັກຕົວ.
ແຕ່, "Load and Save" ຂອງ W3C DOM Level 3 ບັນຈຸບັນທຶກບາງພາກສ່ວນທີ່ຄ້າຍຄືກັນຫນັງບາງການປະຕິບັດ, ແຕ່ບໍ່ມີບູຊີເລີ້ທີ່ບັນຈຸບັນທຶກພວກມັນ.
- ກ່ອນໜ້າ DOM ສ້າງຫນັງຖືກຈັດຕັ້ງ
- ຕໍ່ໜ້າ ລາຍການຄູ່ມາຂອງ DOM