حتما تا به حال در اینترنت به وب سایت هایی برخودید که بدون بارگزاری مجدد صفحات یا به اصطلاح Refresh کردن محتوای سایت را تغییر می دهند و با این کار باعث افزایش سرعت سایت و در نتیجه رضایتمندی کاربران در استفاده از وب سایت می شود حال این سوال پیش می آید که چطور می شود این کار را انجام داد جواب خیلی ساده است Ajax
AJAX چیست؟
واژه AJAX با تلفظ <ایجکس> یا <ایژاکس> سرنام عبارت Asynchronous Java and XML و به معنی <ترکیب نامتقارن جاوا اسکریپت و>XML است. ماهیت صفحات وب و پروتکل HTTP به گونهای است که به طور معمول وقتی درحال وبگردی هستیم، به ازای هر کنش و واکنش میان ما و سایتی که در حال کار با آن هستیم، کل یک صفحه وب از نو بارگذاری و تازهسازی (refresh) میشود.
ایجکس فناوری جدیدی است که تغییر محسوسی را در این سناریو به وجود میآورد؛ به این ترتیب که به جای بارگذاری مجدد کل صفحه، فقط قسمتی تغییر میکند که قرار است اطلاعات جدید را به نمایش درآورد و کلیه عملیات ارسال اطلاعات و دریافت نتایج در پشت صحنه انجام میشود. در نتیجه هیچگاه صفحه سفید و خالی وب در فواصل کنش و واکنشهای هنگام کار با مرورگر دیده نمیشود و احساسی مشابه تجربه کار با یک نرمافزار دسکتاپ به کاربر دست میدهد.
پیاده سازی Ajax به وسیله jQuery
یکی از بهترین راه های پیاده سازی ای جکس استفاده از فریم ورک قدرتمند جی کوئری می باشد . برای این کار توابع کاربردی در jquery نوشته شده است که می توانید لیست آنها را در اینجا مشاهده فرمایید
در این پست به آموزش راهکاری جهت لود کردن صفحات به صورت ajax می پردازیم
برای شروع بسته آموزش را دانلود کنید و سپس فایل ها را از حالت زیپ خارج کنید. همین طور که مشاهده می کنید یک فولدر به نام css وجود دارد که داخل آن فایل css و همچنین تصاویر مورد نیاز قرار دارند همچنین در فولدر اصلی فایل های index.html , external.html , sections.html , menu.js قرار دارند حال به نحوه عمل کرد کدها می پردازیم.
فایل index.html را به وسیله نرم افزار ادیتور خود باز کرده و به کدهای داخل آن توجه فرمایید
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <meta name="keywords" content="tutorial, ajax, jquery, javascript, load content" /> <meta name="description" content="How to load content via AJAX in jQuery - avadesigner.com"/> <title>How to load content via AJAX in jQuery. By avadesigner.com</title> <link rel="stylesheet" type="text/css" media="screen" href="css/main.css" /> <script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.2.6.min.js"></script> <script type="text/javascript" src="menu.js"></script> </head> <body> <div id="container"> <div id="top"> <h1><a href="http://www.avadesigner.com">avadesigner - Tutorials, Web Design and Coding</a></h1> <ul id="menu"> <li id="home"> صفحه اصلی </li> <li id="news"> اخبار </li> <li id="products"> محصولات </li> <li id="external"> پیوندها </li> </ul> <span class="clear"></span> </div> <div id="loading"> <img src="css/images/loading.gif" alt="Loading..." /> </div> <div id="content"> <h2>Home</h2> <p> لورم ایپسوم متن ساختگی به سادگی از صنعت شناخته چاپ استاندارد و وب سایت حروفچینی است. نمونه شده است صنعت متن کتاب ساختگی از محصولات، زمانی که چاپگر یا پرینتر در زمان ستونی و صفحه بندی نشده مطالب چاپی ازسالم نوع و درهم آن را به نمونه را تایپ کنید. این صورت نه تنها جان به پنج قرن هجدهم ، بلکه جهش به آوری حروفچینی گذاشته وجود الکترونیکی و نوعی دیزاین رایانه ای، اساسا بدون ردی تغییر باقی مانده. آن را در فوتبال با انتشار ورق حاوی شهریار معابر فکری هکرها پزشک محبوبیت بود، و اخیرا فکری با نرم افزار هکر را نشر شناخت هیت من رومیزی همانند از جمله نسخه های دیگران بوده است راکه در پی فرهنگ پس از آن و می خواهد به آن را دارند، تنها به استفاده دلیل آن است. </p> </div> <div id="footer"> <p> Made by <a href="http://www.avadesigner.com">avadesigner.com</a>. We hope you find this tutorial useful for your personal projects </p> </div> </div> </body> </html> </body>
همین طور که ملاحظه می کنید جدای از تگ های تبلیغاتی سایت سه تگ در کد های ما دارای اهمیت می باشند که به ترتیب عبارتند از تگ ul با آیدی menu , تگ div با آیدی loading که تصویر مربوط به لودینگ صفحه داخل آن قرار دارد و تگ div با آیدی content که محتوای سایت در این قسمت قرار دارند و ما با استفاده از jquery محتوای این قسمت را بدون refresh صفحه تغییر می دهیم
همچنین در قسمت head سایت کدهای فراخوانی مربوط به css و jquery قرار دارند و بعد از آنها کد فراخوانی فایل menu.js که وظیفه اصلی در آن اجرا می شود وجود دارد.
حال فایل menu.js را باز کنید و به کدهای داخل آن توجه نمایید
$(document).ready(function(){ //References var sections = $("#menu li"); var loading = $("#loading"); var content = $("#content"); //Manage click events sections.click(function(){ //show the loading bar showLoading(); //load selected section switch(this.id){ case "home": content.slideUp(); content.load("sections.html #section_home", hideLoading); content.slideDown(); break; case "news": content.slideUp(); content.load("sections.html #section_news", hideLoading); content.slideDown(); break; case "products": content.slideUp(); content.load("sections.html #section_products", hideLoading); content.slideDown(); break; case "external": content.slideUp(); content.load("external.html", hideLoading); content.slideDown(); break; default: //hide loading bar if there is no selected section hideLoading(); break; } }); //show loading bar function showLoading(){ loading .css({visibility:"visible"}) .css({opacity:"1"}) .css({display:"block"}) ; } //hide loading bar function hideLoading(){ loading.fadeTo(1000, 0); }; });
خوب اگر به جاوا اسکریپت و jQuery تسلط داشته باشید به راحتی متوجه کدها خواهید شد اما برای درک بهتر دوستان به توضیح کدها می پردازم
در ابتدای کار ما باید از لود شدن محتوای مورد نظر مطمئن شویم تا با مشکل رو برو نشیم برای همین از فرمان زیر استفاده می کنیم
$(document).ready(function(){ }
سپس ۳ متغیر تعریف کرده و با استفاده از سلکتورهای jquery سه تگ مهم اشاره شده را در آنها می ریزیم
var sections = $("#menu li"); var loading = $("#loading"); var content = $("#content");
در مرحله بعد برای رویداد click برای متغیر sections توابعی را تعریف می کنیم
sections.click(function(){ //show the loading bar showLoading(); //load selected section switch(this.id){ case "home": content.slideUp(); content.load("sections.html #section_home", hideLoading); content.slideDown(); break; case "news": content.slideUp(); content.load("sections.html #section_news", hideLoading); content.slideDown(); break; case "products": content.slideUp(); content.load("sections.html #section_products", hideLoading); content.slideDown(); break; case "external": content.slideUp(); content.load("external.html", hideLoading); content.slideDown(); break; default: //hide loading bar if there is no selected section hideLoading(); break; } });
اولین تابع showloading می باشد به این صورت
function showLoading(){ loading .css({visibility:"visible"}) .css({opacity:"1"}) .css({display:"block"}) ; }
که وظیفه ظاهر کردن تصویر مربوط به لودینگ را دارد سپس یک ساختار switch تعریف شده که وظیفه تشخیص صفحه درخواستی از سوی کاربر را دارد و بر اساس آن صفحات مورد نظر را با کمک تابع load که از توابع مهم jquery می باشد به صورت Ajax لود می کند و به کاربر نمایش می دهد و در مرحله پایانی هم تابع hideLoading
function hideLoading(){ loading.fadeTo(1000, 0); };
تصویر لودینگ را محو کرده وبه همین راحتی محتوای صفحه بدون refresh صفحه تغییر می کنند.
برای گرفتن بهترین نتیجه باید تا حد امکان از نحوه کار کرد کدها جاوا اسکریپت و جی کوئری اطلاع دقیق داشته باشید تا بتوانید در پروژه های خود از این امکانات استفاده نمایید.
خواهش میکنم
خیلی مطلب جالبی بود ممنون
عالی بود ممنونم
عالی بود ممنون از مطالب بسیار خوبتون
عالی بود ممنونم
عالی بود، مرسی از سایت مفید و کاربردیتون
عالی بود ، ممنون بابت مطالب عالیتون
عالی بود ، بسیار سپاس گذارم
لطفا در صورت امکان آموزش گام به گام css هم در سایت قرار بدید
عالی بود . سپاس فراوان از شما
عالی بود ، با سپاس فراوان از زحمات شما
سپاسگزارم مرسی از سایت خوبتون موفق باشین
سلام وخسته نباشید.مطالبتون عالی بود.ممنون
خیلی عالی بود واقعا استفاده کردم
عالی بود ممنونم
هایک ویژن
نصب دوربین مدار بسته
دوربین مدار بسته
لاایک دارین
ممنووون خیلی به دردم خورد .
موفق باشین
بسیار عاالی . ممنونم
سلام
با تشکر از مطالب جالبتون
سپاسگزارم مرسی از سایت خوبتون موفق باشین
خیلی خوب و کاربردی بود .ممنونم
ممنون از مطلب خوبتون
بسیار چالبه
Thank you for sharing!
مطلب جالبی بود ممنون
بسیار عالی
عالی بود ممنونم 🙂
خیلی عالی و آموزنده بود. مرسی از سایت خوبتون.
ممنون سايت شما محتواي خوبي داره
ممنون از سایت خوب و مفیدتون . موفق باشید
عالی بود . ممنون از سایت خوبتون
. موفق باشید
عالی بود
ممنون
ممنون از سایت مفیدتون . موفق باشید
عالی بود . سپاس فراوان از شما
مرسی، خیلی مفید و کاربردی بود
عالی بود . سپاس فراوان از زحمات شما******
با سپاس و قدردانی فراوان مطلب مفید و ارزنده ای بود موفق و پیروز باشید
سایت خوبی دارید ، ممنون
همیشه موفق باشید
عالی بود
ممنون از شما
سلام خوب بود
سلام خیلی خوب بود
ممنون از آموزش عالیتون
تشکر
ممنون واقعا تکنولوژی jquery خیلی رابط کاربیو پیشرفته کرده م میشه توی همون صفحه خیلی دسترسی ایجاد کرد برای کاربر
سلااااااااااااام ممنون عاااااااااالی بووووووووود
سلاااااااااااااااام ممنون عااااااااااالی بووووووووود
سلام و خسته نباشید
ممنون بابت آموزش خوبتون
زنده باشید
خیلی ممنون از آموزشتون
با عرض سلام مطلب خیلی خوبی بود خسته نباشید میگم بهتون دستتون درد نکنه
با سلام ممنون از آموزش عالیتون
تشکر
سایت خیلی خوبی دارید این آموزشم مثل همیشه عالی بود
متن آموزشی خوبی بود ، ممنون
سلاااااااام خووووووب بووووووووود ممنون از سایت خوبتون
عالی بود.ممنون از سایت مفید شما.
BIG LIKE
Thack
با تشکر از مطالب جالبتون
با سلام
با تشکر از اشتراک گذاری مطلب
با تشکر از مطلب خوبتان
خیلی ممنون بابت آموزش های عالیتون
آموزش پروژه محور برای php دارید؟
باسلام
نه موجود ناریم
چونکهما دیگر asp.net کار میکنیم
ممنون از اشتراک گذاری مطالب خوبتون
tank
مرسی عالی بود
ممنونم از شما
سپاس گزارم از سایت خوب و پر محتوای شما
خیلی خوب بود ممنون بابت به اشتراک گذاری
بی صبرانه منتظر مطالب بیشتر هستیم
عرض ادب
آموزش بی نظیری بود ، تشکر از به اشتراک گذاری این موضوع
با سپاس فراوان از شما منتظر مطالب بعدیتون هستم
از زحمات شما متشکرم
بسیار مطلب جالب و مفیدی بود , ممنون
سلام ممنونم از سایت خوبی که دارید موفق باشید
با تشکر از توضیحات خوب و کاربردی تون
با تشکر از توضیحات خوب و کاربردی تون
ممنون خیلی خوب بود امیدوارم موفق باشید
بسیار عالی بود، با تشکر از مطالب عالیتون
عالی بود ، ممنون از سایت خوبتون
موفق و سربلند باشید
بسیار مقاله پرمحتوا و کاربردی و مفیدی بود. واقعا از شما تشکر می کنم که این آموزشهای مفید رو در اختیارمون قرار می دهید
سایت زیبایی دارید
با سلام ممنون از شما بابت مقالات و آموزش های مفید طراحی سایت .موفق و پایدار باشید
عالی بود.از سایت خوبتون سپاسگزارم.
توضیحات کامل و به روزی بود با تشکر
بسیار عالی بود، با تشکر از مطالب عالیتون
خیلی ممنون از سایت خوبتون
بسیار عالی با تشکر از مطالب عالیتون
ممنون بابت اطلاع رسانیتون.
بسیار بسیار عالی
ممنون از سایت خوبتون
موفق و سربلند باشید
ممنون از سایت بسیار خوبتون
سلام و احترام خدمت مدیر وبسایت
بنده از مطالب سایت شما لذت بردم و استفاده کردم تبریک میگم سایت خوبی طراحی کردید خواستم از زحماتتون تشکر کنم، باز هم مطالب وبسایت شمارو پیگیری و استفاده خواهم کرد
مچکرم
مفید بود
من برای سایتم استفاده کردم
عالی بود ممنوناز سایت خبتون
بسیار عالی بود موفق باشید
ممنون از سایت خوبتون موفق باشید
سایتتون خیلی جالب واقعا لذت بردم
بسیار ممنون از آموزش خوبتون.ولی یه کم سخته.