XMLHttpRequest ওবজেক্ট

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>

TIY

মন্তব্য:onreadystatechange একটি ইভেন্ট হ্যান্ডলার। তার মান (state_Change) একটি ফাংশনের নাম যা XMLHttpRequest অবজেক্টের অবস্থা পরিবর্তিত হলে চালু হয়। অবস্থা 0 (uninitialized) থেকে 4 (complete) পর্যন্ত পরিবর্তিত হয়। শুধুমাত্র অবস্থা 4-এর ক্ষেত্রেই আমরা কোড চালু করি।

কেন Async=true ব্যবহার করা হয়?

আমাদের ইনস্ট্যান্সটি open() পদ্ধতির তৃতীয় পারামিটারে "true" ব্যবহার করেছে。

এই পারামিটারটি রিকোর্ডটি কিভাবে অসিনক্রোনাস প্রক্রিয়াকরণ করা হবে নির্দেশ করে。

True মানে, স্ক্রিপ্টটি send() মথড় পরেও চালু থাকবে এবং সার্ভার প্রতিক্রিয়া অপেক্ষা করবে না。

onreadystatechange ইভেন্টটি কোডটিকে জটিল করেছে।কিন্তু এটি সবচেয়ে নিরাপদ পদ্ধতি, যাতে সার্ভার প্রতিক্রিয়া না পাওয়া পর্যন্ত কোডটি থামবে না。

এই পারামিটারটিকে "false" হিসাবে সেট করে, অতিরিক্ত onreadystatechange কোডটি সাশ্রয় করা যাবে।যদি রিকোর্ড ব্যর্থ হলে অন্যান্য কোডটি চালু করা হবে না, তবে এই পারামিটারটি ব্যবহার করা যাবে。

TIY

আরও প্রয়োগ

এক্সএমএল হার্ডওয়্যার একটি textfile-কে একটি div ইলেকট্রনিক উপাদানে লোড করুন

এক্সএমএল হার্ডওয়্যার HEAD রিকোর্ড জানান

এক্সএমএল হার্ডওয়্যার নির্দিষ্ট 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 এক্সপ্রোপার্টি ব্যবহার করে ফলাফলকে ক্লায়েন্টে ফিরিয়ে দিতে

TIY

XMLHttpRequest অবজেক্ট W3C এর প্রমাণপত্র কি?

যে কোনও W3C প্রস্তাবিত প্রমাণপত্রই XMLHttpRequest অবজেক্ট নির্দিষ্ট করে না。

কিন্তু W3C DOM Level 3 "Load and Save" নিয়মগুলি কিছু অনুরূপ ফাংশনালিটি অন্তর্ভুক্ত করে, কিন্তু এগুলির কোনওভাবেই ব্রাউজার রূপায়িত হয়নি。

দেখুন

XML DOM রেফারেন্স ম্যানুয়েল: XMLHttpRequest অবজেক্ট