


ایجکس چیست؟ ajax چه ویژگی هایی دارد و چگونه عمل می کند؟
ایجکس شامل فناوری های وب می باشد که به کمک آن وب از حالت منفعلی خارج می شود. برنامه هایی که توسط ایجکس مبتنی بر وب تولید می شوند تعامل خوبی با کاربر دارند.
ایجکس چیست؟ Ajax مخفف Asynchronous JavaScript And XML و یک اسکریپت Client Side است که با پایگاه داده سرور بدون نیاز به لود کامل صفحه ارتباط برقرار میکند. به عبارتی میتوان Ajax را روشی برای تبادل اطلاعات با سرور و بهروزرسانی قسمتهایی از صفحه وب بدون نیاز به لود مجدد کل صفحه دانست.
Callback:
به وسیله ایجکس امکان ارسال درخواست به سرور و یا دریافت از سرور به منظور بازیابی یا ذخیره داده بدون ارسال کل صفحه به سرور وجود دارد. عدم ارسال کل اطلاعات فرم به سرور، استفاده از پهنای باند را به حداقل میرساند و در نتیجه عملیات سریعتر انجام میشود. بدیهی است که این کار باعث افزایش کارایی شبکه در سایتها و مناطقی با پهنای باند محدود خواهد شد. همچنین با بهکارگیری Callback ها دیگر نیازی به پردازش تمام عناصر فرم نخواهد بود و ارسال اطلاعات ضروری به جای کل اطلاعات، پردازشهای سرور را نیز کاهش میدهد.
Making Asynchronous Calls (ایجاد فراخوانیهای غیرهمزمان):
استفاده از Ajax امکان برقراری تماسهای غیر هم زمان با سرور را فراهم میکند و در نتیجه مرورگر کاربر بدون صبر برای دریافت کل اطلاعات، میتواند فعالیت جدیدی را انجام دهد.
User friendly (کاربر پسند):
بدیهی است عدم لود مجدد صفحه و در نتیجه عدم پرش صفحه یا نمایش صفحه سفید در هنگام refresh و افزایش محسوس سرعت نمایش اطلاعات، حس خوب تجربه کاربری (Ux) را افزایش خواهد داد.
Increased Speed (افزایش سرعت):
اصلی ترین هدف ایجکس افزایش سرعت، کارایی و قابلیت استفاده (Usability) وب سایت است. از بارزترین نمونههای کاربردی Ajax، میتوان به رتبهدهی کاربران به یک فیلم، برنامه، محصول یا هر سرویس ارائه شده دیگر و ذخیره این اطلاعات در پایگاه داده سایت بدون نیاز به صبر برای لود مجدد صفحه اشاره کرد.
روش عملکرد Ajax
Callback های Ajax با ایجاد شی XMLHttpRequest در جاوا اسکریپت Client Side انجام میشود. شی XMLHttpRequest به صورت مستقیم میتواند برای فراخوانی شیهای Server Side مانند صفحهها یا وب سرویسها مورد استفاده قرار بگیرد.
کلمه غیرهمزمان (Asynchronous) در نام Ajax به معنای انجام چند رویداد به صورت مستقل از یکدیگر است. در صورت ایجاد یک Callback از طرف client، نیازی به صبر برای دریافت پاسخ نیست و کاربر در زمان پردازش درخواست میتواند به استفاده از وب سایت ادامه دهد. همانطور که بیان شد ایجکس تکنولوژی نیست اما از تکنولوژیهای مختلفی استفاده میکند:
- Html و Css جهت نمایش محتوا
- Document Object Model) Dom): برای نمایش پویا و برقراری ارتباط کاربر با اطلاعات نمایش داده شده
- جاوااسکریپت و XMLHttpRequest به منظور فراهم کردن روشی برای تبادل اطلاعات غیر هم زمان بین مرورگر و سرور در جهت جلوگیری از لودهای مجدد کل صفحه
پیشرفتهای Ajax
میدانیم که Ajax از ترکیب جاوا اسکریپت و XML تشکیل میشود. جاوا اسکریپت یک زبان برنامهنویسی Client Side و XML زبان نشانهگذاری برای نمایش محتوا است. JavaScript Object Notation) JSON) نیز یک زبان نشانهگذاری دیگر برای تعریف داده میباشد که استفاده از آن به همراه JavaScript بسیار سادهتر از XML است. امروزه وب سرویسهای JSON در Ajax جایگزین XML شدهاند.
یکی دیگر از پیشرفتهای Ajax استفاده از jQuery برای نوشتن سادهتر کدهای جاوا اسکریپت در جهت هدایت و اعمال تغییرات در صفحه و Callback های غیرهمزمان ایجکس است.
ابزارهای کنترل اضافه شده بهوسیله مایکروسافت به Visual Studio، کار برنامهنویسان وب که از زبان ASP.net استفاده میکنند را بسیار راحتتر کرده است.

در کجای برنامه باید از Ajax استفاده کرد؟
در هر جایی از برنامه که میزان اطلاعات پردازشی برای بازیابی یا ذخیره، کم باشد باید از ایجکس استفاده کرد. به عنوان نمونه برای کاربرد Ajax میتوان به موارد زیر اشاره کرد:
- بررسی اعتبار فرم (Data Validation)
- تغییر اطلاعات در drop down list ها بر اساس یک وروردی دیگر (مانند انتخاب کشور و پر شدن اسم شهرهای آن در drop down list)
- بازیابی یا ذخیره متغیرهای session در سرور بر اساس سلیقه کاربر مثل عرض، ارتفاع یا موقعیت یک شی (تنظیم عرض باعث ایجاد Callback در سرور برای تنظیم مقدار جدید عرض میشود. در این روش در refresh بعدی صفحه، سرور عرض شی را بر اساس متغیر session تنظیم خواهد کرد؛ در غیر این صورت عرض شی به مقدار پیش فرض خود بازخواهد گشت)
- فراهم شدن امکان خاص و با ارزش پرشدن اتوماتیک text box ها بر مبنای حرفهای ورودی کاربر (کاربر قسمتی از حروف یک کلمه را تایپ میکند و لیستی از کلمههایی که با آن کاراکترها شروع میشوند در پایین box نمایش داده خواهند شد. برای این کار یک Callback به سرور برای select مقادیری که با حروف وارد شده شروع میشوند، فرستاده میشود)