XMLHttpRequest ওবজেক্ট
- পূর্ববর্তী পৃষ্ঠা DOM ক্লোন নোড
- পরবর্তী পৃষ্ঠা DOM ম্যানুয়েল তালিকা
XMLHttpRequest ওবজেক্ট ওয়েবসাইট লোড হওয়ার পরে সার্ভারের সাথে কমিউনিকেশন করার পদ্ধতি প্রদান করে。
XMLHttpRequest ওবজেক্ট কী?
XMLHttpRequest ওবজেক্ট হলোডেভেলপারের স্বপ্নকারণ আপনি এমন করতে পারেন:
- পানেলটি পুনর্লোড না করে পানেল নিয়েই ওয়েবসাইট অপদান করা
- পানেল লোড হওয়ার পর সার্ভার থেকে ডাটা অনুরোধ করা
- পানেল লোড হওয়ার পর সার্ভার থেকে ডাটা পাওয়া
- পিছনের পিছনে সার্ভারে ডাটা পাঠানো
সমস্ত আধুনিক ব্রাউজারগুলো XMLHttpRequest অবজেক্টকে সমর্থন করে
প্রয়োগ:টেক্সট টাইপ করা সময় সার্ভারের সাথে XML HTTP কমিউনিকেশন করা.
XMLHttpRequest অবজেক্ট সৃষ্টি করা
একটি সহজ JavaScript কোডের মাধ্যমেই XMLHttpRequest অবজেক্ট সৃষ্টি করা যায়。
সমস্ত আধুনিক ব্রাউজারে (ইই 7-এর মতো):
xmlhttp=new XMLHttpRequest()
ইন্টারনেট এক্সপ্লোরার 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) একটি ফাংশনের নাম যা XMLHttpRequest অবজেক্টের অবস্থা পরিবর্তিত হলে চালু হয়। অবস্থা 0 (uninitialized) থেকে 4 (complete) পর্যন্ত পরিবর্তিত হয়। শুধুমাত্র অবস্থা 4-এর ক্ষেত্রেই আমরা কোড চালু করি।
কেন Async=true ব্যবহার করা হয়?
আমাদের ইনস্ট্যান্সটি open() পদ্ধতির তৃতীয় পারামিটারে "true" ব্যবহার করেছে。
এই পারামিটারটি রিকোর্ডটি কিভাবে অসিনক্রোনাস প্রক্রিয়াকরণ করা হবে নির্দেশ করে。
True মানে, স্ক্রিপ্টটি send() মথড় পরেও চালু থাকবে এবং সার্ভার প্রতিক্রিয়া অপেক্ষা করবে না。
onreadystatechange ইভেন্টটি কোডটিকে জটিল করেছে।কিন্তু এটি সবচেয়ে নিরাপদ পদ্ধতি, যাতে সার্ভার প্রতিক্রিয়া না পাওয়া পর্যন্ত কোডটি থামবে না。
এই পারামিটারটিকে "false" হিসাবে সেট করে, অতিরিক্ত onreadystatechange কোডটি সাশ্রয় করা যাবে।যদি রিকোর্ড ব্যর্থ হলে অন্যান্য কোডটি চালু করা হবে না, তবে এই পারামিটারটি ব্যবহার করা যাবে。
আরও প্রয়োগ
এক্সএমএল হার্ডওয়্যার একটি textfile-কে একটি div ইলেকট্রনিক উপাদানে লোড করুন
এক্সএমএল হার্ডওয়্যার HEAD রিকোর্ড জানান
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 অবজেক্ট নির্দিষ্ট করে না。
কিন্তু W3C DOM Level 3 "Load and Save" নিয়মগুলি কিছু অনুরূপ ফাংশনালিটি অন্তর্ভুক্ত করে, কিন্তু এগুলির কোনওভাবেই ব্রাউজার রূপায়িত হয়নি。
- পূর্ববর্তী পৃষ্ঠা DOM ক্লোন নোড
- পরবর্তী পৃষ্ঠা DOM ম্যানুয়েল তালিকা