با اجازه اساتید این تاپیک رو باز می کنم تا محل و منبعی باشه برای طرفداران این تکنولوژی. از همه هم دعوت میکنم تا هر چیزی که دارن اعم از آموزش ، منبع و... رو بذارن کنن تا همه با هم یاد بگیریم.
در مورد مکان تاپیک هم نمی دونستم تو کدوم بخش بزنم آخه ای جکس از چند تا تکنولوژی استفاده میکنه. اما شایان گفت اینجا بزنم تا بعدا جدا بشه... به بزرگی خودتون ببخشید دیگه.
اول از همه یه مقدمه کوچولو عرض میکنم تا شروعی بر کارمون باشه : (این مقدمه رو از اینجا برداشتم : http://notvoid.persianblog.com/ البته با یه کمی تغییر)
اگر شما تا به حال حتی يک صفحه وب هم نساختيد ولی حتما متوجه فرق بين صفحات وب و برنامه هايی که در ويندوز اجرا ميکنيد شده ايد. تا قبل از آمدن AJAX (و بسياری سايت ها هم چنان)صفحات وب يا همان وب سايت ها دارای قابليت بسيار محدود بودند.در صفحات وبی که به صورت Dynamic (صفحات Dynamic صفحاتی هستند که قابليت دريافت و تبادل اطلاعات با کاربر را دارند)طراحی ميشوند در تعامل با کاربر اکثر اوقات صفحه مجبور به لود شدن مجدد بود تا بتواند تغييرات دلخواه کاربر( به عنوان مثال نمايش نتايج جستجو) را نمايش دهد که اين عمل لود شدن دوباره(يا به اصطلاح postback) نه تنها زمانگير بود بلکه موجب سردرگمی کاربر و در نتيجه پايين آمدن جذابيت سايت ميشد. اما مایکروسافت با ایجاد دستور XMLHttpRequest تحولی عظیم در دنیای صفحات وب بوجود آورد و موجب ایجاد تکنولوژی جدیدی شد.ولی واقاُ AJAX چيست؟ AJAX ترکيبی از چندين تکنولوژی طراحی صفحات وب است.بحث راجع به اينکه اسمش از کجا اومد و کی اول ابداعش کرد رو ميگذريم .AJAX ترکيبی از تکنولوژی ها طراحی صفحات static و کد نويسی سمت کاربر (javascript)و کد سمت سرور(مثل ASP.NET ,PHP,...) و XML وتبادل غير متقارن داده هاست.واو ...از اينهمه کلمه قلمبه سلمبه نترسيدا خلاصش اين که AJAX ميتونه اطلاعات و داده ها رو بدون اينکه در نمايش صفحه توقفی ايجاد کنه بين سرور و کلاينت تبادل کنه و در صورت لزوم اطلاعات را به قسمتی از صفحه اضافه کنه بدون اينکه بقيه صفحه رو ببره و بياره.به عنوان نمونه سايت های Google Suggest و يا Google Maps به درستی از AJAX استفاده کردند.در شکل زير تفاوت يک طراحی معمول بدون استفاده از AJAX رو با يک صفحه به همراه AJAX رو نشون ميده.
خب حالا یه مثال از آژاکس : در این مثال ما یه ماشین حساب رو طراحی می کنیم که هم AJAX و هم صفحات داینامیک معمول رو در بر میگیره. برای دیدن این مثال اینجا رو ببینید و از اینجا هم دانلود کنید. برای اجرای این مثال روی لوکال هاست به PHP و Apache نیاز دارید. این هم منبع این مثال : http://www.sematopia.com/?p=34
می پردازیم به کد : اول از همه جاوا اسکریپت :
فایل ajax.js :
حالا نوبت به کدهای PHP میرسهکد:var xmlhttp=false; if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } function ajax_call() { xmlhttp.open("GET", 'ajaxWork.php?num1=' + document.getElementById('num1').value + '&num2=' + document.getElementById('num2').value , true); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4) { document.getElementById('result').value = xmlhttp.responseText; } } xmlhttp.send(null) return false; }
اول فایل ajaxWork.php :
تو این کد صفحه جدیدی به نام ajaxClass.php درخواست کردیم که کدش اینه :کد:< ?php include("ajaxClass.php"); $objSem = new ajax; $objSem->readURLParameters(); $objSem->staticExample(); echo $objSem->result; ? >
و در آخر هم کد index.php :کد:< ?php class ajax { var $queryParam = array(); var $result = 0; var $num1 = 0; var $num2 = 0; function readURLParameters() { $qstr = explode("&", $_SERVER['QUERY_STRING']); foreach ($qstr as $value) { $paramVal = explode("=",$value); if (array_key_exists(1,$paramVal)) { $this->queryParam[$paramVal[0]] = $paramVal[1]; } } } function staticExample() { if (array_key_exists("num1",$this->queryParam) & array_key_exists("num2",$this->queryParam)) { $this->result = $this->queryParam["num1"] * $this->queryParam["num2"]; $this->num1 = $this->queryParam["num1"]; $this->num2 = $this->queryParam["num2"]; } } } ? >
ببخشید اگه درست و حسابی توضیح ندادم. پست های بعدی جبران می کنم.کد:<?php include("ajaxClass.php"); $objSem = new ajax; $objSem->readURLParameters(); $objSem->staticExample(); ?> <html> <script src="ajax.js" type="text/javascript"></script> <body> <br><br> <p>AJAX Example:</p> <form name="form1" action="" onsubmit="return ajax_call()"> <input type="text" name="num1" id="num1"></input> * <input type="text" name="num2" id="num2"></input> = <input type="text" name="result" id="result"></input> <br><br> <input type="submit" name="semajax" value="AJAX"></input> </form> <!-- --> <br><br> <p>Standard Example:</p> <form name="form1" action="index.php"> <input type="text" name="num1" id="num1" value="<? echo $objSem->num1 ?>">num1 ?>></input> * <input type="text" name="num2" id="num2" value="<? echo $objSem->num2 ?>">num2 ?>></input> = <input type="text" name="result" id="result" value="<? echo $objSem->result ?>">result ?>></input> <br><br> <input type="submit" name="semajax" value="Standard"></input> </form> </body> </html>
حتما رو این مثال کار کنید
موفق باشید ...



پاسخ با نقل قول






