article

آموزش ای جکس (Ajax)، تکنیک غیرهمزمانی در وب

ajax-web-development

ای جکس (Ajax) عنوان جذابی است از نوعی تکنیک برنامه نویسی ترکیبی که از سال 2005 با کاربرد آن توسط موتورهای جستجویی چون گوگل و برنامه نویسان وب مطرح شد، این کلمه مخففی است از سرواژه های Asynchronous JavaScript And XML و در بیانی ساده به معنی نقل و انتقال داینامیک و غیرهمزمان اطلاعات در صفحات وب بدون بارگذاری مجدد (reload) آنها است، نمونه برجسته ای از کاربرد ای جکس در شبکه های اجتماعی، چت روم های آنلاین و سرویس های آپلود فایل خودنمایی می کند، در واقع با کمک این تکنیک درخواست از سمت مرورگر به سرور ارسال می شود بدون اینکه در روند صفحه فعلی مرورگر کاربر خللی وارد شود (عبارت Asynchronous به معنی غیرهمزمان یا ناهمگام است و این یعنی عملیات در پس زمینه صورت می گیرد و کاربر همچنان می تواند در مرورگر پیمایش کند)، اگرچه به کارگیری این تکنیک در مقایسه با سایر زبان های اسکریپت نویسی وب تقریبا جدید و روشی نوین است، اما باید توجه داشت که ای جکس یک زبان جداگانه محسوب نمی شود بلکه شیوه ی نوینی از به کارگیری و ترکیب JavaScript و XML است.

تلفظ و نگارش صحیح Ajax


قبل از اینکه به ادامه آموزش بپردازیم یادآور می شویم که این عبارت در بین برنامه نویسان فارسی زبان وب گاها به صورت های متفاوتی تلفظ و نوشته می شود که در واقع همه به یک مفهوم اشاره دارند، به طور مثال آجاکس، آژاکس، ایجکس، ای جکس و...، در نگارش انگلیسی این کلمه نیز گاهی AJAX و گاهی Ajax (با تلفظ اِی جَکس) نگاشته می شود، به نظر می رسد صحیح ترین واژه برای تلفظ و نگارش این عبارت اِی جَکس (Ajax) باشد که در مجموعه مطالب آموزشی سایت از آن استفاده کرده ایم.

ضرورت و پیش نیازهای فراگیری ای جکس (Ajax)


پیشتر اشاره کردیم تکنیک ای جکس مبتنی بر ارسال غیرهمزمان درخواست از مرورگر به سرور در پس زمینه است، منظور از غیرهمزمانی این است که با ارسال یک درخواست مبتنی بر ای جکس نیازی به بارگذاری مجدد صفحه وب نیست و کاربر می تواند تجربه بهتری از کار با برنامه داشته باشد، به طور مثال فرض کنیم بخواهیم بخش کوچکی از قسمت مدیریت سایتمان (مانند بخش تعداد آخرین نظرات جدید) را  به روزرسانی کنیم، در حالت معمول برای انجام این کار راهی جز رفرش صفحه وب وجود ندارد، اما با ای جکس می توانیم در فواصل زمانی خاص درخواست هایی در پس زمینه ارسال، نتیجه را دریافت و مطابق با نیازمان به کمک جاوا اسکریپت اطلاعات بازگشتی را پردازش کنیم، کاربرد درست و بجای این شیوه می تواند لذت استفاده از برنامه های تحت وب را دوچندان کند ضمن اینکه برخی از برنامه ها ماهیتا باید مبتنی بر تکنیک غیرهمزمانی طراحی شوند، به فرض تصور وجود برنامه پشتیبانی آنلاین بدون این شیوه عملا ممکن نیست، برای فراگیری ای جکس داشتن حداقل دانشی از JavaScript، HTML و آشنایی مختصری با PHP ضروری است، چرا که پایه اصلی درخواست ای جکس از سمت کاربر و دریافت پاسخ سرور به وسیله کدهای جاوا اسکریپت شکل می گیرد، علاوه بر این در پروژه های کاربردی مدیریت داده های ارسالی از سمت کاربر به سرور نیازمند آشنایی با یک زبان برنامه نویسی مانند PHP است، به هر صورت اگر خیلی با JavaScript یا PHP آشنا نیستیم در حداقل شرایط نیز می توانیم با پیروی از برخی نمونه کدها و آشنایی کلی با تکنولوژی ای جکس تا حدود زیادی نیازهای وبمان را بر طرف کنیم.

شروع آموزش ای جکس با یک مثال


برای شروع آموزش این تکنیک شاید بهتر باشد ابتدا به صورت کاربردی با ای جکس آشنا شویم، به طور مثال یک فرم ساده وب را در نظر بگیریم که در رویداد onchange تابعی مبتنی بر جاوا اسکریپت را اجرا می کند، برای شروع کدهای زیر را در یک فایل HTML با نام فرضی ajax-simple-form.html درج می کنیم:
<form name="myform" action="#">
<label for="username">نام: </label>
<input name="username" id="username" type="text" onchange="ajaxRequest();">
<br><br>
<label for="srvertime">زمان: </label>
<input name="srvertime" id="srvertime" type="text">
</form>
همانطور که گفتیم ارسال و دریافت اطلاعات در وب در حالت عادی با بارگذاری مجدد صفحه انجام می شود که این مسئله مخصوصا در مواردی که می خواهیم یک عملیات جزئی در صفحه داشته باشیم چندان منطقی و باب طبع کاربر نیست، برای حل این مشکل با افزودن چند خط کد ای جکس زیر می توانیم بدون رفرش صفحه اطلاعات را به سرور منتقل کرده و پاسخ را دریافت کنیم.
در اینجا می خواهیم پس از اینکه کاربر نام خود را در فیلد اول وارد کرد با اجرای رویداد onchange در فیلد دوم زمان سرور را نشان دهیم، برای این کار کد زیر را به صفحه HTML اضافه می کنیم (بالاتر یا پائینتر از فرم اهمیتی ندارد):
<script >
function ajaxRequest(){
    var xmlHttp;
    
    try{
        //Opera, Firefox, Safari
        xmlHttp = new XMLHttpRequest();
    } catch (e){
        //Internet Explorer
        try{
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                alert("متاسفانه مرورگر شما از ای جکس پشتیبانی نمی کند");
                return false;
            }
        }
    }
}
</script>
کد بالا برای ارسال درخواست در بستر ای جکس کامل نیست و بعد از افزودن کدهایی که در ادامه خواهیم دید درخواست به سرور در پس زمینه ارسال می شود، در بررسی کد XMLHttpRequest یک Object است که در جاوا اسکریپت با دستور new فراخوانی و به متغیر نسبت داده می شود، برای درک دقیق مفهوم آبجکت باید با برنامه نویسی شی گرا آشنا باشیم اما فعلا در همین حد بدانیم که XMLHttpRequest در واقع ساز و کاری را فراهم می کند که بتوانیم درخواست هایی در بستر ای جکس ارسال و نتیجه را دریافت کنیم، این ساز و کار را در برنامه نویسی اصطلاحا API (مخفف Application Programming Interface) می نامند، XMLHttpRequest در مرورگر اینترنت اکسپلورر در نسخه های قدیمی به نحو متفاوتی عمل می کند و اگر بخواهیم چنین مرورگرهایی را نیز پشتبانی کنیم نیاز به کدهای اضافه و استفاده از ActiveXObject داریم، به همین دلیل در نمونه کد بالا تنظیمات سازگار با همه مرورگرها آورده شده تا از این نظر با مشکل مواجه نشویم، اما برای ارسال درخواست و دریافت نتیجه در پس زمینه به دستورات بیشتری نیاز است که در ادامه خواهیم دید، کدهای زیر را به انتهای تابع ajaxRequest اضافه می کنیم (منظور از انتها قبل از بسته شدن تابع با آخرین علامت } است، نمونه کامل در انتهای آموزش در لینک پیش نمایش آنلاین درج شده است):
xmlHttp.onreadystatechange = function(){
    if(xmlHttp.readyState == 4){
        document.myform.time.value = xmlHttp.responseText;
    }
}
xmlHttp.open("GET", "server-time.php", true);
xmlHttp.send(null);
در تحلیل تکه کد بالا onreadystatechange در ای جکس متدی از آبجکت XMLHttpRequest است که پس از ارسال درخواست مقدار عددی متد readyState را بررسی می کند تا ببیند که رویداد جدیدی رخ داده یا خیر، در بیان ساده هر اتفاقی که در روند ارسال درخواست های مبتنی بر ای جکس رخ می دهد با یک مقدار عددی (از 0 تا 4) مشخص می شود، این مقدار عددی را متد readyState در خود نگه می دارد و متد onreadystatechange زمانی برقرار و به اصطلاح true است که مقدار readyState از حالت پیش فرض به یک عدد تغییر کند (متدهایی مانند onreadystatechange را که با رویداد سر و کار دارند در اصطلاحات برنامه نویسی EventHandler می گویند)، متد readyState را در ادامه به صورت کامل بررسی می کنیم.

readyState یا وضعیت آماده چیست؟


همان طور که اشاره شد بعد از فراخوانی XMLHttpRequest مرورگر یک درخواست ای جکس را شروع می کند و متد readyState در طی این روند با اعدادی از 0 تا 4 که هر کدام یک وضعیت را نمایش می دهند مقداردهی می شود، عدد 0 وضعیت UNSENT را نشان می دهد که یعنی متد open در مرورگر ساخته شده اما هنوز فراخوانی نشده است، عدد 1 وضعیت OPENED را نشان می دهد یعنی متد open فراخوانی شده، عدد 2 نشانگر وضعیت HEADERS_RECEIVED است یعنی متد send فراخوانی شده و سربرگ های HTTP و پاسخ سرور آماده است، عدد 3 نشانگر وضعیت Downloading است، یعنی مرورگر در حال دریافت مقادیر ارسال شده از سرور به عنوان پاسخ است، در گام آخر برای اینکه بررسی کنیم همه چیز مرتب است readyState باید DONE یا کامل باشد، حالت کامل با عدد 4 دریافت می شود و با شرط ساده if برابری آن را بررسی می کنیم (که آیا xmlHttp.readyState برابر 4 است یا خیر).

دریافت و نمایش پاسخ سرور در ای جکس (Ajax)


پس از دریافت مقدار عددی 4 در بررسی readyState با دستور شرطی if، تکه کد document.myform.time.value اجرا و مقدار برگردانده شده توسط سرور که در متد responseText وجود دارد را به فیلد input که با مقدار name آن مشخص شده می دهیم، با دقت در کد متوجه می شویم که در متد open از عبارت GET برای آرگیومنت اول، آدرس یک فایل PHP برای آرگیومنت دوم و عبارت true برای آرگیومنت سوم استفاده شده، در حال حاضر در همین حد بدانیم که این پارامترها به ترتیب برای مشخص کردن نحوه ارسال اطلاعات (متد GET یا POST)، آدرس فایل مقصد در سرور (در اینجا فایل PHP) که درخواست به آن ارسال می شود و تعیین اینکه آیا سایر فعالیت های مرورگر در طی روند درخواست متوقف شود یا خیر (به ترتیب با مقدار false یا true، در حالت پیش فرض true) می باشند، در نهایت اطلاعات را با متد send به فایلی که با متد open فراخوانی گردیده ارسال می کنیم، در کد فعلی هیچ مقداری در send ارسال نشده و مقادیر آرگیومنت آن برابر با null است، اما در آموزش های بعدی خواهیم دید که می توان در یک درخواست مبتنی بر ای جکس پارامترهایی نیز به همراه درخواست به سرور ارسال کرد، کدمان در نهایت به صورت زیر خواهد بود:
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>وبگو | فرم ارسال درخواست ای جکس</title>
<!-- Webgoo.ir -->
<style>
body{
    font-family:Tahoma, Geneva, sans-serif;
    direction:rtl;
    font-size:12px;
}
label{
    display:inline-block;
    width:50px;
}
</style>
<script>
function ajaxRequest(){
    var xmlHttp;
    
    try{
        //Opera, Firefox, Safari
        xmlHttp = new XMLHttpRequest();
    } catch (e){
        //Internet Explorer
        try{
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try{
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e){
                alert("متاسفانه مرورگر شما از ای جکس پشتیبانی نمی کند");
                return false;
            }
        }
    }
    xmlHttp.onreadystatechange = function(){
        if(xmlHttp.readyState == 4){
            document.myform.time.value = xmlHttp.responseText;
        }
    }
    xmlHttp.open("GET", "server-time.php", true);
    xmlHttp.send(null);    
}
</script>
</head>
<body>
<form name="myform" action="#">
<label for="username">نام: </label>
<input name="username" id="username" type="text" onchange="ajaxRequest();">
<br><br>
<label for="servertime">زمان: </label>
<input name="servertime" id="servertime" type="text">
</form>
<hr>
پس از نوشتن عبارت مورد نظر در فیلد نام، در فیلد زمان یا در یک فضای خالی صفحه وب کلیک کرده و اندکی منتظر بمانید، تابع ajaxRequest در رویداد onchange اجرا شده و پاسخ سرور در فیلد زمان نمایش داده می شود.
</body>
</html>
پیش نمایش آنلاین
sectionدسته بندی: آموزش مقدماتی » Ajax
related مطالب بیشتر:
» نمایش پیام در حال بارگذاری با ای جکس (Ajax)
» ارسال و دریافت اطلاعات با متد GET و POST در ای جکس (Ajax)
» فریم ورک های ای جکس (Ajax Frameworks)
» ذخیره و نمایش اطلاعات فایل با ای جکس (Ajax) و PHP
» نمایش افکت fade in با ای جکس (Ajax)
commentنظرات (۲۸ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: سعید
۲۰:۵۶ ۱۳۹۱/۰۷/۱۰
ممنون. عالی بود
نویسنده: Mehran
۱۴:۲۳ ۱۳۹۱/۱۲/۱۹
سلام، با تشکر از شما.
نویسنده: خلیل
۱۰:۳۱ ۱۳۹۲/۰۷/۲۷
خیلی ممنون
نویسنده: الناز
۱۷:۲۹ ۱۳۹۲/۰۸/۱۷
سلام
سایت خیلی پربازدید و جالبی دارید از کل سایت های آموزشی سایت شما تکه و خیلی هم واضح توضیح میدین واقعا دمتون گرم
یه سوالی خیلی واجبی داشتم لطفا خیلی ممنون میشم جوابم رو بدین
من تازه Ajax رو یاد گرفتم
یک فرم تماس درست کردم به این صورت
<form name="myform" method="post">
<input name="pm" type="text" />
<input type="button" onclick="AjaxLoad();">
</form>
نکته دکمه ی ارسال اطلاعات با نوع سابمیت نیست
به این صورت عمل میکنه وقتی که یک اطلاعاتی را درون فیلد وارد می کنی و با زدن دکمه اطلاعات با Ajax ارسال میشه
به طوری که اصلا به هیچ وجه صفحه رفرش نشه ولی اگر کاربر کلمه ای را درون فیلد وارد کرد اگر بجای زدن دکمه اینتر را فشار داد عملیات که اجرا نمیشه هیچ صفحه هم رفرش میشه من نمیخوام این طور بشه و این کد را نوشتم که به درستی عمل میکنه
<script type="text/javascript">
document.onkeydown = function(){
if(event.keyCode == 13){
AjaxLoad();
myform.pm.value = null;
}
if(event.keyCode == 13 || event.ctrlKey == true){
return false;
}
}
</script>
گفتم که اگر دکمه ی اینتر را از کیبورد فشار داد کدهای Ajax عمل کنه (بجای زدن دکمه) که یعنی اطلاعات ارسال میشه به پایگاه داده و همان فیلدی که اطلاعات وارد کرده را خالی یعنی برابر نال کنه و اگر دکمه ی اینتر یا دکمه ی کنترل رو از کیبورد زد صفحه رفرش نشه منظور از کنترل یعنی وقتی که عمل نکنه از کپی یا پیست کردن در فیلد جلوگیری میشه
خب تا اینجا مشکلی نبود یه مشکل اساسی هست فقط این کد های جاوا اسکریپت فقط در مرورگر گوگل کروم اجرا میشه و تو هیچ مرورگر دیگری حتی فایرفاکس هم اجرا نمیشه
میخوام کد درستش را واسم تایپ کنید یک دنیا ممنون میشم
خدانگهدار شما
پاسخ: 
حالت رویداد برای اکثر مرورگرها با حرف e مشخص می شود، برای اینترنت اکسپلور از window.event یا event استفاده می کنیم، اصلاح شده کد شما:
<script type="text/javascript">
document.onkeydown = function(e){
var evt = e || window.event;
if(evt.keyCode == 13){
AjaxLoad();
myform.pm.value = null;
}
if(evt.keyCode == 13 || evt.ctrlKey == true){
return false;
}
}
</script>
نویسنده: رضا
۱۵:۲۵ ۱۳۹۲/۰۸/۲۱
سلام می خواستم بدونم چطور میشه با یک درخواست آژاکس 2 مقدار یا بیشتر را دریافت کنیم و هرکدام را در یک تگ جداگانه بریزیم مثلا در php دو متغیر داریم و میخواهیم انها را در دو متغیر یا دو تگ جاوا اسکریپت بریزیم
پاسخ: 
برای این کار باید رشته خروجی را با علامت های دلخواه (به فرض |) جداسازی کرده و با کمک توابعی مانند split در جاوا اسکریپت آن را در سمت کاربر تجزیه و استفاده نمائید.
نویسنده: بهنام
۱۱:۵۵ ۱۳۹۲/۱۲/۱۳
سلام
بازم مثل همیشه هرچقدر تعریفتون کنم بازم کمه واقعا میگم خسته نباشی دوست عزیز
من یه چت روم با پی اچ پی و آزاکس درست کردم به این صورت:
وقتی درون فیلد متنی وارد بشه و دکمه ی اینتر را که بزنی متن در پایگاه داده اینسرت و در مرورگر با دستور select چاپ میشه میخوام این کد را اگه صلاح دیدید واسم تصحیح کنید که به این صورت کار کنه:
وقتی درون فیلد متنی که وارد شد و دکمه ی اینتر را که زدیم متن با آژاکس درون پایگاه داده اینسرت بشه و select با آژاکس به صورتی دیگه باشه نه با اینتر زدن مثلا هر کاربری متنی وارد کرد نمایش داده بشه در مرورگر راهی که به ذهن من میرسه اینه:
با استفاده از mysql_num_rows وقتی به پایگاه داده متن جدیدی اینسرت شد کل متن ها را در مرورگر نمایش بده و من همچین کلکی را نمیدونم با آژاکس چگونه می شود نوشت لطفا کد را تصحیح کنید با تشکر یک دنیا ممنون میشم
حذف شد
پاسخ: 
لطفا اینگونه موارد را از طریق ایمیل (که در بخش تماس با ما وجود دارد) به صورت فایل های فشرده شده (با فرمت zip) ارسال کنید تا بررسی شوند.
نویسنده: mostafa
۱۱:۰۸ ۱۳۹۲/۱۲/۲۶
سلام خیلی جالب و ساده توضیح دادین مرسی
فقط 2 سوال داشتم ببخشید اگه پیش پا افتادست چون من تازه شروع به کار کردم و خیلی جذب برنامه نویسی با طرح ajaxe شدم
1- آیا وب سایت خودتونم از برنامه نویسی آژاکس استفاده شده
2- برنامه اندروید . سیمبین . به عنوان مثال نیم باز واتس آپ و... از آژاکس استفاده می کنن اصلا آژاکس برای گوشی ها هم هستش
مرسی
پاسخ: 
در حال حاضر در بخش های جزئی در سایت از Ajax استفاده شده، مانند تغییر کد امنیتی در بخش ارسال نظرات!
قاعدتا Ajax در وب با سایر پلتفرم ها تفاوت هایی دارد، اما تقریبا تمام آنها قابلیتی مشابه دارند که امکان نقل و انتقال داده ها به صورت نامحسوس را فراهم می کند، هرچند ممکن است نام آن Ajax نباشد (چون Ajax مبتنی بر JavaScript و XML است).
نویسنده: سعیده
۱۵:۵۷ ۱۳۹۲/۱۲/۲۷
سلام خسته نباشی
ببخشید من دانشجو کاردانی هستم استادم به من گفته مطالی مبتنی بر power point درمورد ajax بنویسم که فقط عکس باشه می تونین کمکم کنید که چه عکسایی بذارم مرسی
پاسخ: 
لطفا مطالب بخش مقدماتی را مطالعه کنید، هر آموزش یک تصویر کوچک به عنوان معرفی و نماد دارد، می توانید از چنین تصاویری استفاده کنید، همچنین باید کاملا مبحث را درک کنید و مواردی را در فتوشاپ (یا سایر نرم افزارهای گرافیکی) طراحی کنید.
نویسنده: پویا
۱۶:۲۰ ۱۳۹۳/۰۱/۱۴
سلام خسته نباشید من یه سوال دارم به سایت زیر برید:
http://www.unrevoked.com
وقتی روی یکی از گوشی ها کلیک کنید می بینید که یه صفحه دیگه باز میشه بدون ری لود شدن حالا باید چی کار کنم وقتی روی یکی از گوشی ها کلیک شود یه سایت دیگه رو باز کنه بدون لود شدن و با انیمیشنی که این سایت در حال باز کردن صفحه است باشه قابل توجه مهندس عزیز که این صفحه به صورت نیمه باز میشه یعنی نصف صفحه تغیر میکنه و نصف بالایی ثابت هستش من من میخوام کاملا عوض شه. زود جواب بدید مرسی
پاسخ: 
دوست گرامی پاسخ کوتاهی برای سوالتان وجود ندارد! این یک نوع طراحی ترکیبی است که از قابلیت های CSS در کنار جاوا اسکریپت یا جی کئوری و Ajax به نحو سفارشی استفاده شده، با بررسی سورس کد صفحه می توانید از آن الگو برداری کنید، برای بارگذاری سایتی دیگر هم باید درخواست آژاکسی به سرورتان ارسال و در آنجا با کدهای PHP سایت مقصد را فراخوانی و در پاسخ درخواست آژاکسی، سورس سایت مقصد را چاپ کنید، در کل این نوع موارد در وب خیلی توصیه نمی شوند (در استفاده از Ajax باید به حداقل بسنده شود).
نویسنده: نیلوفر
۰۱:۰۳ ۱۳۹۳/۰۱/۱۸
سلام خسته نباشید
من میخوام وقتی اسم و فامیل وارد میشه ، بعدش اطلاعات مربوط به اون اسم و فامیل که قبلا در دیتابیس ذخیره شده، بدون رفرش شدن صفحه ، در فیلدهای بعدی نمایش داده بشه
پاسخ: 
لطفا مطالب را از ابتدا مطالعه کنید، کاری که می خواهید انجام دهید نیاز به آشنایی با Ajax و جاوا اسکریپت است.
نویسنده: سیمین
۲۲:۲۶ ۱۳۹۳/۰۲/۱۵
با سلام و خسته نباشید. آموزشتون عالی بود دمتون گرم
نویسنده: محمد باقری
۰۱:۳۵ ۱۳۹۳/۰۲/۳۱
سلام
بابت آموزش های خیلی خوبتون ممنونم
فیض بردیم ...
نویسنده: مینا
۲۲:۵۲ ۱۳۹۳/۰۴/۳۰
با سلام
واقعا خسته نباشید
من وب نویسی رو تازه شروع کردم یعنی دارم کم کم یاد میگیرم
و به لطف اموزش خوبتون فکر کنم دارم خوب پیش میرم
فقط محیط کاری Dreamweaver واسه من نا اشناست یعنی هیچی ازش نمیدونم میشه یه سایت اموزشی یا ... واسش معرفی کنین
خیلی ممنون
پاسخ: 
نرم افزار Adobe Dreamweaver چندان محیط پیچیده ای ندارد، لطفا در این رابطه عبارت "آموزش Adobe Dreamweaver" را در وب جستجو کنید، آموزش های خوبی وجود دارد.
نویسنده: محمد
۱۱:۱۲ ۱۳۹۴/۰۲/۱۴
سلام
یه سوال که خیلی وقته تو ذهنمه :
چرا شما از JQuery چیزی نمیگید !؟
آیا مثلا در مورد همین بحث AJAX استفاده از تابع آن در JQuery آسان و کاربردی تر نیست ؟
پاسخ: 
سیاستگذاری فعلی سایت بر آموزش و استفاده از زبان های محض (Pure) بنا شده که خود دلایل متعددی دارد (از جمله جنبه آموزش پایه)، به همین دلیل فعلا در مورد فریم ورک ها و... مطلبی منتشر نخواهد شد، در مورد جی کئوری به نظر آینده وب رو به سمتی می رود که شاید قابلیت های HTML5 و CSS3 در کنار JavaScript و نسل بعدی Ajax، جایگزین این کتابخانه نسبتا سنگین شود، از طرفی استفاده از جی کئوری به جهت کاربردی بودن در اغلب موارد پیچیدگی کمتری دارد و نمونه کدهای فراوانی نیز برای آن یافت می شود.
نویسنده: جواد
۰۱:۵۸ ۱۳۹۴/۰۹/۳۰
سلام شنیدم که آژاکس برای گوگل قابل خزش نیست و باید !# استفاده بشه در آدرس میخواستم بدونم چجوری باید این کار انجام بشه و این که در این سایت نمونه من در مطالب که نوار کنترل داره و مثلا میزنه مرور کلی در صفحه جا به جا میشه به قسمت مرور کلی میره میخواستم بدونم این مدل آژاکس هم بد هستش یا نه
ممنون
پاسخ: 
منظور از Ajax این سبک جا به جا شدن بین صفحه نیست! منظور این است بدون اینکه لینک صفحه در دسترس ربات گوگل باشد، مطالب با دستورات برنامه نویسی بارگذاری شوند، در واقع یعنی لینک کامل در هیچ کجای صفحه وجود نداشته باشد و صرفا با استفاده از پارامترهایی که اگر آنها را در نوار آدرس مرورگر وارد کنیم، صفحه ی مورد نظر نمایش داده نخواهد شد، سیستم طراحی شود، در هر صورت برای سازگاری این نوع سایت ها معمولا علاوه بر حالت Ajax، لینک ها نیز به نحوی در خروجی صفحات چاپ می شوند تا برای ربات گوگل و سایر موتورهای جستجو قابل دسترسی باشند.
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- موارد غیرمرتبط با مباحث آموزش ها را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ مختصر داده خواهد شد.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- از درج عناوین تبلیغاتی در فیلدها خودداری کنید، در صورتی که یادداشت تبلیغاتی تشخیص داده شود حذف خواهد شد.
- تمام یادداشت ها بررسی و زمانی جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد خودداری کنید.





6 × 5
 refresh

آخرین دیدگاه ها
more برای دسترسی سریع به یادداشت مربوطه می توانید از لینک مطلب در کادر زیر استفاده کنید.
form محمد رستمی
در:
سلام اگه میشه لیست توابع و کاربردشونو توی یه فایل pdf بزارین
۱۳۹۹/۰۹/۰۵

form شهریار صادقی
در:
من سه تا صفحه در php storm درست کردم یکی برای html یکی برای جاوا اسکریپت و جی کوِئری و یکی هم برای css اول...
۱۳۹۹/۰۹/۰۱

form دوست خوب
در:
اگر بخواهیم برای رفتن به مرورگر و باز کردن یک صفحه لینک دهیم؟
۱۳۹۹/۰۹/۰۱

form مجتهدزاده خیاوی
در:
سلام و خسته نباشید من جدولی دارم که تعداد ستون های اون نسبتا زیاده. توی نمایشگر های دسکتاپ مشکلی ندارم اما تو گوشی و...
۱۳۹۹/۰۸/۲۹

form Alireza
در:
خیلی ممنون از پاسخگویی سریع! بله خوشبختانه سرور هاست دانلود LiteSpeed هست و از جدیدترین PHP هم پشتیبانی میکنه. تو قسمت path هم دایرکتوری...
۱۳۹۹/۰۸/۲۹

form Alireza
در:
عرض سلام و خسته نباشید از مطالب استفاده کردم و نظرات هم خوندم واقعا مفید بودن. یکی دو نفر مشکلی شبیه بنده داشتن. من...
۱۳۹۹/۰۸/۲۹

form امیرحسین
در:
سلام استاد عزیز وقت بخیر من یه سوال در مورد function use داشتم اگه ممکنه با مثالی کاربردی توضیح بدید که کارش چیه :...
۱۳۹۹/۰۸/۲۷

form Amin Eskandari
در:
سلام عالی بود ممنون
۱۳۹۹/۰۸/۲۷

form فاطمه
در:
چگونه در حلقه ها اعداد را جمع کنیم و در خروجی مجموع انان را نشان دهد مثلا جواب
۱۳۹۹/۰۸/۲۶

form میکاییل
در:
درسته مشکلی نیست تو ارسال اطلاعات. تنها مشکلم اینه که هدر عمل نمیکنه و ریدایرکت انجام نمیشه و نمیره سمت صفحه پرداخت. حالا نمیدونم به...
۱۳۹۹/۰۸/۲۵

form میکاییل
در:
سلام من تو قسمتی از صفحه پرداخت انلاین دارم همه چی درسته و اطلاعات بصورت ایجکسی ارسال میشه و سمت سرور نوشتم که هدر...
۱۳۹۹/۰۸/۲۵

form mohsen
در:
با عرض سلام و خسته نباشید خدمت استاد ببخشید من یه فرمی دارم که از طریق ایجکس ثبت میشه داخل دیتا و بعد میره به...
۱۳۹۹/۰۸/۲۳

form مجید
در:
سلام وقت بخیر . ببخشید نمیشه دیتابیس توی کدنویسی html ایجاد کنیم افرادی هستن توی محل کارش اینترنت ندارن . اینو باید چکارکنم
۱۳۹۹/۰۸/۲۳

form حسینی سیانکی
در:
سلام مطلب خیلی مفید و کاملی بود. خسته نباشید
۱۳۹۹/۰۸/۲۰

form ar
در:
سلام ممنون از سایت خوبتون ببخشید من تازه دارم زبان برنامه نویسی جاوااسکریپت رو یاد میگیرم و لپتاپم لپتاپ نسبتا ضعیفی هست من...
۱۳۹۹/۰۸/۲۰
form saba
در:
سلام من این کد رو در قسمت کد های اختصاصی کاربر وارد کردم اما هیچ تغییری ایجاد نشد ممکنه راهنمایی کنید؟
۱۳۹۹/۰۸/۱۹
form مینا
در:
سلام. من میخوام از regex توی ماشین حساب استفاده کنم ممنون میشم منو راهنمایی کنین
۱۳۹۹/۰۸/۱۹
form intal
در:
سلام خسته نباشید من واقعا از وبگو ممنونم که این آموزش های ارزشمند رو در اختیار کاربران قرار میده راستش من هرکاری می کنم پوزیشن...
۱۳۹۹/۰۸/۱۷
form بهروز
در:
مهندس جان خیلی عالی بود دستت درد نکنه درست شد.
۱۳۹۹/۰۸/۱۷
form اصغر
در:
خوندمش خیلی ممنون مفید بود
۱۳۹۹/۰۸/۱۵
form بهروز
در:
ممنون، خیلی لطف کردید، چشم امتحان میکنم خبر میدم فقط یه موری رو یادم رفت عرض کنم اینکه مثلا لینک exm.ir/m/yyyy به...
۱۳۹۹/۰۸/۱۴
form بهروز
در:
ممنون از پاسخگویی سریعتان در سوال فوق yyyy متغیر هست یعنی هرسری یه عددی کلیک میشه مثلا exm.ir/1234 حالا میخوام ریدایرکت بشه به آدرس...
۱۳۹۹/۰۸/۱۴
form بهروز
در:
سلام اگه بخوام ادرس 1 رو به ادرس دو ریدایرکت کنم چطور انجام دهم:
۱۳۹۹/۰۸/۱۴
form Mori
در:
سلام. میخواستم بدونم که چگونه در html میشه چند لیست عمودی رو کنار هم قرار داد. یعنی در واقع لیست ها زیر هم نباشند. ...
۱۳۹۹/۰۸/۱۰
form مبین
در:
با سلام من می خواستم دستوری در دیتابیس بنویسم که بر اساس قد افراد نتایج را مرتب و چاپ کند و اگه قد برار بود...
۱۳۹۹/۰۸/۰۹
form عباس علیمردانی
در:
سلام. من یک سوال یا بهتر بگم خواهش داشتم ایا شما میتوانید وبلاگ رو فیلتر کنید؟ یعنی با حکم قضایی فیلتر بشه. وبلاگ برایه...
۱۳۹۹/۰۸/۰۹
form ابوالفضل
در:
سلام استاد اومدم امروز بعد از سالها سوالاتی که از شما استاد بزرگوارم میپرسیدم رو زیر این پست مرور می کردم واقعا چقدر مبتدی...
۱۳۹۹/۰۸/۰۹
form mahtab
در:
سلام وقتتون بخیر ببخشید من میخوام یه آهنگی رو بزارم وبم کدش تو اینترنت زدم اما نیاورد بی زحمت میشه راهنمایی کنین چجوری...
۱۳۹۹/۰۸/۰۸
form Mori
در:
بهترین سایت برنامه نویسی در ایران هستید
۱۳۹۹/۰۸/۰۷
form Mori
در:
سلام. چگونه باید در لیست برای هر کدام از اعضا به صورت جداگانه لینک بگذاریم؟؟
۱۳۹۹/۰۸/۰۷
form جیهوپ
در:
سلام استاد عزیز من میخواستم صفحه وبی ایجاد کنم مثل این صفحه وبی ایجاد کنید که مشخصات شما را در 3 پاراگراف با ویژگی...
۱۳۹۹/۰۸/۰۶
  در انتظار بررسی: ۲
 پاسخگویی به سوالات ممکن است تا 24 ساعت زمان ببرد.