در زمانهای گذشته وب سایت ها برای نمایش مجدد اطلاعات یک صفحه از وب سایت مجبور بودند که صفحه رفرش شده و آن اطلاعات را در روی صفحه نمایش دهند. فکرش را بکنید این برای یک وب سایت ارایه دهنده ایمیل یعنی اینکه هر کاربر باید برای نوسازی صندوق ورودی خود، کل سایت را رفرش نماید. وقتی کاربر تقاضای رفرش صفحه را می کند تمام فایل های html,css,js,… باید مجددا فراخوانی شوند و این بسیار ناکارآمد می باشد.
بهترین حالت در این مورد این می باشد که مرورگر نامه جدید را به صندوق ورودی کاربر اضافه کند و نه اینکه کل صفحه را مجددا بارگیری نماید.
از سال 2003 به بعد، مرورگرها خود را با XMLHttpRequest (XHR) انطباق دادند. این تکنولوژی این امکان را فراهم می سازد که بدون رفرش کل صفحه اطلاعات جدید اضافه شده به سرور را دریافت کرد.
XMLHttpRequest بخشی از یک تکنولوژی بزرگتر به نام AJAX (Asynchronous JavaScript and XML) می باشد
با استفاده گسترده از XMLHttpRequest می توان برنامه هایی در حد و اندازه های Google maps و Gmail ساخت که در این برنامهها با استفاده از XMLHttpRequest کاشیهای جدید در برنامه نقشه و ایمیل های جدید در برنامه جیمیل لود می شوند.
درخواست های ایجکس با استفاده از کدهای جاواسکریپت ارسال و دریافت می شوند، بدین صورت که کد شما یک درخواست را به سمت یک URL ارسال کرده و بعد از دریافت پاسخ از سمت سرور با استفاده از تابع callback می توانید پاسخ دریافت شده را مدیریت نمایید.
چون درخواست ها بصورت غیرهمزمان Asynchronous ارسال و دریافت می شود، در فاصله پردازش دستورات ارسال شده به سمت سرور بسیاری از پاسخ های مطلوب نیز آماده استفاده است، لذا بسیار ضروری است که بتوان تابع callback را مدیریت کرد.