ایکس ایم ال ڈی او م آئی اینٹی سکلیپٹ
- پچھلے ویب DOM کلون نود
- پائیدار ویب DOM دستورزنچہ
XMLHttpRequest علامت نے ویب پیج لوڈ کے بعد سروسرو کے ساتھ مواصلات کا طریقہ فراہم کیا ہے。
XMLHttpRequest علامت کیا ہے؟
XMLHttpRequest علامت کا استڈیولپرز کا خواب، کیونکہ آپ اس کے لئے بھی میں سکتے ہیں:
- صفحه بار نہ ہونے کے حالت میں ویب پیج اپدیت کرنا
- صفحه بار ہونے کے بعد سرور سے ڈاٹا درخواست کرنا
- صفحه بار ہونے کے بعد سرور سے ڈاٹا حاصل کرنا
- در پس منظر سرور کو ڈاٹا ارسال کرنا
تمام جدیدترین بروزروں XMLHttpRequest آئی او بی جی کا تعاون دیتے ہیں۔
مثال:متن تایپ کرتے وقت سرور کے ساتھ XML HTTP مواصلات میں آئیں.
XMLHttpRequest آئی او بی جی بنانا
یک خط ساده JavaScript کے ذریعے، XMLHttpRequest آئی او بی جی بنایا جاسکتا ہے۔
در تمام جدیدترین بروزروں (شامل IE 7):
xmlhttp=new XMLHttpRequest()
در اینترنت اکسپلورر 5 و 6:
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
مثال
<اسکریپت نوع="تکست/جاوااسکریپت"> var xmlhttp; function loadXMLDoc(url) { xmlhttp=null; اگر (ویندوز.اکٹیوایکسجی) {// تمام نئے بروزروں کے لئے کوڈ} xmlhttp=new XMLHttpRequest(); } درآخر اگر (ویندوز.ایکتیوایکسجی) {// IE5 اور IE6 کا کوڈ} xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } if (xmlhttp!=null) { xmlhttp.onreadystatechange=state_Change; xmlhttp.open("GET",url,true); xmlhttp.send(null); } else { alert("آپ کا براوزر XMLHTTP کو مستند نہیں کردارتی ہے."); } } function state_Change() { if (xmlhttp.readyState==4) {// 4 = "loaded"} if (xmlhttp.status==200) {// 200 = OK} // ...آپ کا کوڈ یہاں... } else { alert("XML داده کی بازیابی میں مسئلہ"); } } } </script>
نوٹ:onreadystatechange ایک ایونٹ ہینڈل ہے۔ اس کا مقصد (state_Change) ایک فونکشن کا نام ہے، جب XMLHttpRequest آئی او بی جی کی حالت تبدیل ہوتی ہے تو اس فونکشن کو کال کیا جاتا ہے۔ حالت 0 (uninitialized) سے 4 (complete) تک تبدیل ہوتی ہے۔ صرف حالت 4 میں ہی ہم کوڈ چلاتے ہیں۔
چرا Async=true استعمال کیا جاتا ہے؟
ہمارا مثال اوپن() کے تیسرے پارامتر میں "true" استعمال کرتا ہے۔
یہ پارامتر درخواست کا ایسینک یا نئسینک معاملہ کا تعین کرتا ہے۔
بائیکدھار کا مطلب یہ ہے کہ اسکریپت سنڈ() میتھد کے بعد جاری رہے گا، بغیر سروئئر کی جواب دہی کی منتظر رہنے کی ضرورت نہیں ہوگی۔
onreadystatechange ایوینٹ کو کوڈ پیچید کراتا ہے۔ لیکن یہ بغیر سروئئر کی جواب دہی کے کوڈ کو رکھنا سب سے محفوظ طریقہ ہے۔
اگر آپ اس پارامتر کو "false" رکھتے ہیں تو، اضافی onreadystatechange کد کو چھوڑ سکتے ہیں۔ اگر درخواست کی شکست کے بعد بقیہ کوڈ کو چلانا یا نہ چلانا، آپ کا معاملہ تھا، تو آپ اس پارامتر کو استعمال کرسکتے ہیں۔
بیشتر مثال
XML HTTP کے ذریعے ایک ٹیکسٹ فائل کو ایک دیویز عناصر میں لوڈ کریں
XML HTTP کے ذریعے HEAD درخواست کا فراہمی
XML / ASP
آپ بھی XML دستاویز کو کھول سکتے ہیں اور اس کو سروئئر پر ASP پیج پر بھیج سکتے ہیں، اس درخواست کا تجزیہ کریں، اور نتیجہ برتائیں。
<ہمل> <بادی> <اسکریپت نوع="تکست/جاوااسکریپت"> ایکسملایح = نول; اگر (ویندوز.اکٹیوایکسجی) {//کد برای IE7, Firefox, Opera, etc. ایکسملایح = نئی اکٹیوایکسجی("Microsoft.XMLHTTP"); } درآخر اگر (ویندوز.ایکتیوایکسجی) {//کد برای IE6, IE5 ایکسملایح = نئی اکٹیوایکسجی("Microsoft.XMLHTTP"); } اگر (ایکسملایح.نول نہیں) { ایکسملایح.اوپن("گیٹ", "note.xml", موقتی); ایکسملایح.سنڈ(نول); ایکسملایح.ریسپونستایکریتنت(); ایکسملایح.اوپن("پوسٹ", "demo_dom_http.asp", موقتی); ایکسملایح.سنڈ(نول); دوکیمنت.وایت(ایکسملایح.ریسپونستایکریتنت(); } else { alert("آپ کا براوزر XMLHTTP کو مستند نہیں کردارتی ہے."); } </script> </body> </html>
ASP ویب پیج، VBScript سے لکھا گیا:
<% xmldoc = Server.CreateObject("Microsoft.XMLDOM") xmldoc.async=false xmldoc.load(request) xmldoc.documentElement.childNodes میں کا لیگا، x اگر x.NodeName = "to" تو name=x.text نکسٹ response.write(name) %>
نتائج کو کلائنٹ کو پاس کیا جانا چاہئے، response.write پر کیا جانا چاہئے۔
XMLHttpRequest آوٹھا کیا W3C کا معیار ہے؟
کسی بھی W3C سفارش معیار میں XMLHttpRequest آوٹھا کو کچھ نہیں دکھایا گیا ہے۔
بھلے ہی W3C DOM Level 3 کی "لوڈ اینڈ سیو" معیار میں کچھ مشابهت مند کارکردگیاں شامل ہیں، لیکن کسی بھی بروزر نے ان کو نہیں نافذ کیا ہے۔
- پچھلے ویب DOM کلون نود
- پائیدار ویب DOM دستورزنچہ