» مقالات » مقالات هایبرد » خصوصیت readyState (آموزش Ajax)

خصوصیت readyState (آموزش Ajax)

خصوصیت readyState (آموزش Ajax)

7343  تعداد بازدید  |  سه شنبه 14 مهر ماه 1394

readyStateخصوصیت با استفاده از این خصوصیت طراحی سایت چک میکنیم که آیا ارسال و دریافت به درستی انجام شده یا خیر. این خصوصیت دارای پنج حالت می باشد:

 با استفاده از این خصوصیت طراحی سایت  چک میکنیم که آیا ارسال و دریافت به درستی انجام شده یا خیر. این خصوصیت دارای پنج حالت می باشد:

حالت 0: این حالت هنگامیست که شما شی را نمونه سازی کرده اید ولی هنور متد OPEN را فراخوانی نکرده اید.
حالت 1: وقتی که شما متد OPEN را فراخوانی کرده اید ولی هنوز از متد SEND استفاده نکرده اید.
حالت 2: این حالت بعد از اینکه متد SEND را فراخوانی کردید اتفاق میافتد. حالت: هنگامی که مرورگر ارتباط را با سرور برقرار کرد ولی هنوز جوابی دریافت نکرده است، اتفاقی میافتد.
حالت 3: این حالت بعد از اینکه درخواست به طور کامل ارسال و جواب نیز از سرور دریافت شد این حالت اتفاق میافتد.

حالا باید منظور از if (XML.READYSTATE==4) را در اول تابع PDATE U توجه شده باشید. منظور این است که اگر ارسال و دریافت به طور کامل انجام شده ادامه دستورات را انجام دهد.در ادامه دستورات داریم :

 یک متغیر به نام MESSAGE تعریف کرده ایم و با دستور :

Var message= xmlHttp.responseTexT:مقدار برگشتی از سرور را درون این متغیر قرار می دهیم.

 حال در این خط با ستور:

document.getElemetByIdmdiv.innerHTML message;مقدار دریافتی از سرور را که در متغیر MESSAGE ذخیره کرده بودیم، به تگ DIV با شناسه MDIV نسبت می دهیم. حال موقع آن رسیده که محتویات فایل WELCOME.PHP را مورد بررسی قرار دهیم:

<?php
 
$uname = $_ GET['name'];
 
Echo “welcome $uname “;
 
?>
 

حالا موقع نیتجه گیری است. فایل HTML که ساخته اید را از طریق IIS به اجرا در آورید.

 حالا نوبت شماست که در جعبه متن مقداری را وارد نمایید مثلا ali

 همانطور که ملاحظه میفرمایید برنامه به خوبی اجرا شده . اما اگر برای شما مشکلی پیش آمده هراسان و دلسرد نشوید. از آنجا که جاوا به حروف بزرگ و کوچک حساس است بنابراین یک بار چک کنید که تمام کوچکی و بزرگی حروف رعایت شده باشد. همچنین متوجه باشید که IIS در حالی کار باشد  PHP به خوبی نصب شده باشد.

<html>
<head>
<script language = “javascript”>
var xmlHttp = null;
 function CreateXmlHttpRequest()
{
 if (window.ActiveXObject) {
 xmlHttp = new ActiveXObject('Microsoft.XMLHTIP');
 }els{
 xmlHttp = new XMLHttpRequest();
 }
return xmlHtp;
}
function proccess()
 {
CreateXmIHttpRequest();
 if (xmlHttp != null) {
var uname = document.getElementById('uname').value;
xmlHttp.open('GET','welcome.php?name=' + uname,true);
xmlHttp.onreadystatechange = update;
 xml.send(null);
}else{
 alert("Your browser does not support Ajax");
 }
 }
function update()
{
if (xmlHttp.readyState == 4){
var message = xmlHttp.responseText
 document.getElementById('mdiv').innerHTML = "Welcome " + message;
}else{
alert("Problem with server);
}
 }
</script>
 <title>Using Ajax</title>
 <div id="mdiv"></div>
</head>
 <body>
 <input type="text" id="uname" onkeyup="process()" />
</body>
</html>

به دستوراتی که زیر آنها خط کشیده شده دقت کنید. در دستور) IF(XMLHTTP!= NULL شرط میکنیم که اگر در هر صورتی هنوز متغیر XMLHTTP (در هر صورت) مقدار دهی نشده به کاربرد هشدار دهند که مرورگر او از ای جکس پشتیبانی نمی کند .

 

Alert("Your browser does not support Ajax(";
 

در تابع UPDATE هم چنین وضعیتی حاکم است. اگر READYSTATEبرابر4 نباشد حتما مشکلی پیش آمده که در این صورت با پیغام PROBLEM WITH SERVER آن را به اطلاع کاربر میرسانیم.

این برنامه باز هم همان عمل قبلی را انجام میدهد اما این بار اگر خطایی پیش آید، حتما پیش بینی شده.

 

 

مقالات مرتبط به طراحی سایت :

کاربرد ای جکس (آموزش Ajax)
خصوصیت readyState (آموزش Ajax)
متد open/متد send (آموزش Ajax)
نمونه سازی XMLHTTPREOUEST (آموزش Ajax)