منتدى استراحات زايد

منتدى استراحات زايد (http://vb.ma7room.com/index.php)
-   منتدى أخبار المواقع والمنتديات العربية والأجنبية (http://vb.ma7room.com/forumdisplay.php?f=183)
-   -   شرح لتقنية ajax الاجكس الية عملها وكيفية التعامل معهاا (http://vb.ma7room.com/showthread.php?t=225638)

محروم.كوم 09-06-2009 10:10 AM

شرح لتقنية ajax الاجكس الية عملها وكيفية التعامل معهاا
 
بسم الله الرحمن الرحيم
في هذه المقالة سنتكلم عن الاجكس ماهي الاجكس وماذا تعني وكفية التعامل مع الاجكس
وكيفية بناء الاجكس وماهي الدوال التي تتعامل معها للحصول على هذه التقنية
اولا سنتكلم عن عن صفحة الويب وكيفية الحصول على الببانات
اولا نعندما تضغط على وسم الرابط
رمز PHP:
دوال


ماذ يحدث
تقوم حاليا بطلب صفحة انترنت على سيرفر ما
فيقوم المستعرض باجراء التعليمات التالية
استخلاص مسار الصفحة الربط من السيرفر المحدد

ارسال الترويسات المطلوبة الى السيرفر للحصول على صفحة الانترنت
ثم يقوم بارسال الطلب التالي
رمز PHP:
GET /SS/S.PHP HTTP/1.0


الى السيرفر المحدد
ثم يقوم بعدها السيرفر باجراء تنفيذ للسطر السابق
رمز PHP:
user-agent:Mozlia/4.0 (compatible;MISE 5.5;Windows NT 5.0)


ثم يقوم بارسال المستعرض معلومات عن المستعرض واسمه ونوع البيانات المراد استقبالها مثلا
رمز PHP:
accept:text/plan,text/html



ثم يقوم السيرفر بارسال البيانات التي توضح حالة الطلب
رمز PHP:

HTTP
/1.0 200 OK


وهذ الشيفرة تدل على نجاح الطلب
هذه الخطوات تقوم انت بالتعامل معها

كيفية بناء الاجكس

1- انشاء كائن الاجكس للتعامل مع الاتصال
2- فتح الصفحة المراد التعامل معها
3- ارسال بيانات اذا كان بحاجة لذلك
4-ارسال ترويسات للمستعرض
5-الاستماع الى حالة الطلب


الدوال التي ستتعامل معها
رمز PHP:
XMLHttpRequest()
او
new ActiveXObject("Microsoft.XMLHTTP")
او
new ActiveXObject("Msxml2.XMLHTTP")
او
new ActiveXObject("Msxml2.XMLHTTP.3.0")
او
new ActiveXObject("Msxml2.XMLHTTP.6.0")
او
new XDomainRequest()


هذه الدالة لانشاء كائن طلب الاجكس ويمكن استخدام احدها
بحسب الشرط المتبع لانه تختلف المستعرضات فيما بينها
فمثلا مزلا
يستخدم
رمز PHP:
XMLHttpRequest()


وهو كائن اصيل في المستعرض
اما فيما تبقى لاصدرات ويندوز انترنت اكسبلور
ويمكنك انشاء كالتالي لضمان انشاء كائن اجكس
رمز PHP:
var T=new XMLHttpRequest()
|| new
ActiveXObject("Microsoft.XMLHTTP")
|| new
ActiveXObject("Msxml2.XMLHTTP")
|| new
ActiveXObject("Msxml2.XMLHTTP.3.0")
|| new
ActiveXObject("Msxml2.XMLHTTP.6.0") || new XDomainRequest();


الدالة
رمز PHP:
open


وهيا دالة فتح الاتصال
تاخذ ثلاثة بارمترات
الاول نوع الطلب
GET او POST
ثم البارمتر الثاني
هو رابط الصفحة المراد اجراء الاتصال معها
ثم البارمتر الثالث وهو اختياري
اما

true==يجعل الاتصال في حالة غير متزامنة
false==يجعل الاتصال متزامن وبقوم باغلاق الصفحة حتى الانتهاء من تنفيذ الطلب
دالة
رمز PHP:
setRequestHeader


تقوم هذه الدالة بارسال التوصيفات الى المستعرض
البارمتر الاول هو اسم التوصيفة
مثلا
رمز PHP:
Content-Type


ثم قيمة التوصيفة او الترويسة
مثلا
رمز PHP:
application/x-www-form-urlencoded


مثال
رمز PHP:
setRequestHeader("Content-Type"," application/x-www-form-urlencoded");


ثم
دالة ارسال البيانات
رمز PHP:
send


تاخذ بارمتر واحد
وهو اما
null
GET في حالة كان نوع الطلب
او البيانات المرسلة اي مثلا
رمز PHP:
T=200&R==2000


مثال
رمز PHP:
send(null);
او
send
("s=200&r=200");


ثم دالة الاستماع الى الحدث اي التغيرات التي تحدث من اجراء الطلب

رمز PHP:

onreadystatechange


وهيا مهمتها اجراء حدث ما عند حصول اي تغيرات في حالة الطلب
اي تاخذ قيمة وهي دالة
مثال
رمز PHP:
onreadystatechange=function() {
}


ثم قيمة الطلب من السيرفر وهيا تكون
تكون قيمة الخاصية التالية
رمز PHP:
readyState


0==لم يتم التهيئة
1==جاري التحميل
2==تم التحميل
3==تفاعلي
4==تم اكماله
ثم
الخاصية التالية
رمز PHP:
status


شيفرة حالة الطلب


وتعود بقيم مختلفة منها
100 ==معلومات
200==نجاح
204 ==المستند لايحتوي على بيانات
300==اعادة توجيه
302== تم نقل المصدر الى مكان اخر
400==خطا
401== يحتاج الى التحقق من المستخدم
4.3==تم رفض الطلب من قبل المخدم
404==الملف غير موجود على المخدم
408 ==فشل اتمام الطلب خلال الفترة المحددة

500==خطا من المخدم وعادة يكون من خطاء في الشيفرة المكتوبة


ثم خاصية استرجاع البيانات
رمز PHP:
responseText


تقوم بارجاع البيانات على شكل نص

اما الخاصية التالية
رمز PHP:
responseXML


تقوم بارجاع البيانات على شكل xml
الخاصية
رمز PHP:
statusText


عبارة عن سبب http
المرجعة من قبل المخدم

اما
رمز PHP:
getAllresponsel


ارجاع كافة الترويسات من المستعرض
اما الدالة
رمز PHP:
getresponseHeader


تقوم باخذ بارمتر واحد وهو اخذ الترويسة المراد الحصول على قيمتها
وتعود بقيمة الترويسة
اما الدالة
رمز PHP:
Header


تقوم بارجاع سلسلة نصية حول الترويسات

وبذلك نكون قد اتنهيا شرح دوال الاجكس الامثلة العملية لذلك

مثال ل get


رمز PHP:
function reg() {
return (new
XMLHttpRequest()
|| new
ActiveXObject("Microsoft.XMLHTTP")
|| new
ActiveXObject("Msxml2.XMLHTTP")
|| new
ActiveXObject("Msxml2.XMLHTTP.3.0")
|| new
ActiveXObject("Msxml2.XMLHTTP.6.0")
|| new
XDomainRequest());

}
var
http= reg();
//فتح قناة الاتصال
http.open('GET','testpost.php?t=200', true);
//ارسال ترويسة للمستعرض بتشفير البيانات المرسلة
http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//ارسال البيانات
http.send(null);
//خاصية الاستماع الى الحالة
http.onreadystatechange = function() {
//التحقق من حالة الطلب
if (http.readyState == 4) {
//التحقق من اتمام المهمة
if (http.status == 200){
// طباعة النتيجة في وسم هوتمل مثلا
//


document.getElementById('t').innerHTML= http.responseText;
}
}
};



مثال ل post

رمز PHP:
return (new XMLHttpRequest()
|| new
ActiveXObject("Microsoft.XMLHTTP")
|| new
ActiveXObject("Msxml2.XMLHTTP")
|| new
ActiveXObject("Msxml2.XMLHTTP.3.0")
|| new
ActiveXObject("Msxml2.XMLHTTP.6.0")
|| new
XDomainRequest());

}
var
http= reg();
//فتح قناة الاتصال
http.open('POST','testpost.php', true);
//ارسال ترويسة للمستعرض بتشفير البيانات المرسلة
http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//ارسال البيانات
http.send("t=200&r=1000");
//خاصية الاستماع الى الحالة
http.onreadystatechange = function() {
//التحقق من حالة الطلب
if (http.readyState == 4) {
//التحقق من اتمام المهمة
if (http.status == 200){
// طباعة النتيجة في وسم هوتمل مثلا
//


document.getElementById('t').innerHTML= http.responseText;
}
}
};


</div>
هذه الاجكس بكافة عيونها
وارجو من الله العلي القدير اكون قد اوصلت المعلومة وهذا وقل ربي زدني علما</div>


الساعة الآن 08:42 PM

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.5.2 TranZ By Almuhajir


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227