بررسی اجمالی فصل
در آخر این فصل شما توانایی تعریف AJAX ،REST ،JSON و HTTP و اونها در APIها، کال کردن سرویس ها با یک کتابخونه مثل jQuery و کتابخونه داخلی XMLHttpRequest و نکات مثبت و منفی استفاده از هرکدوم، استفاده از یک API خارجی برای دریافت دیتا در جاوا اسکریپت، استفاده از قابلیت های jQuery برای رابط کاربری و رویداد ها، و شناسایی API های با قابلیت cross-domain و استفاده از درخواست های cross-domain رو خواهید داشت.
توی این فصل، قراره روش های مختلف استفاده از AJAX برای گرفتن دیتا، و در درجه اول از طریق سرویس های RESTful رو بررسی کنیم.
معرفی فصل
توی فصل قبل، کار با Node.js رو یاد گرفتیم، که سمت سرور اجرا میشه. این فصل قراره یه سمت دیگه از سرویس ها رو پوشش بده و میخوایم ببینیم چطور میشه این سرویس ها رو از طریق کلاینت ها کال کرد. ممکنه این سرویس ها درواقع با Node.js پیاده سازی شده باشن، اما همچنین میتونن روی بقیه پلتفرم ها مثل Java و #C و Python هم ران بشن.
صفحه های وب (Web Pages) استاتیک هستن و کاراییشون بدون دیتا های جدید محدود میشه. وب سرویس ها مجموعه ای از تکنولوژی هایی هستن که یه سری استاندارد برای برقراری ارتباط صفحه وب شما با بقیه سرورها و سایت ها جهت رد و بدل دیتا ارائه میدن.
برای اینکه سرویس هایی که با زبان های مختلف پیاده سازی شدن بتونن با هم ارتباط برقرار کنن، باید یه سری قوانین رایج و استانداردی مربوط به ساختار درخواست ها و response هایی که این وسط رد و بدل میشن وجود داشته باشه. برای همین، یه سری استاندارد و روش برای وب سرویس ها وجود داره که فرمت دیتای رد و بدل شده رو تعریف میکنن. محبوبترین ترکیب مورد استفاده امروزه REST با JSON هست که مخفف Representational State Transfer و JavaScript Object Notation هستن. این فصل تمام چیزایی که باید برای کال کردن سرویس های REST جهت دریافت دیتا برای صفحه های وبتون بدونید رو با جزئیات توضیح میده.
قبل از اینکه وب سرویس ها بیان وسط، وب سرور ها قبل از اینکه فایل HTML که ارائه میدادن رندر میشد، باید اول تمام دیتای مورد نیاز رو سمت سرور دریافت میکردن. برای به روز رسانی اطلاعات روی صفحه، کل صفحه دوباره باید رندر میشد و این باعث میشد که روی user experience این صفحه ها تاثیر منفی داشته باشه، مخصوصا اگه دیتای موردنیاز حاوی محاسبات و کوئری های پیچیده بود، چرا که کاربر باید منتظر میموند تا صفحه دوباره بیاد بالا و نمیتونست تا زمان اتمام این عملیات کار دیگه ای توی صفحه انجام بده.
برای مثال صفحه ای رو در نظر بگیرید که قیمت سهام یا پیام های یک ایمیل رو نمایش میده. توی زمانای گذشته باید کل صفحه رو توی مرورگر ریلود یا ریفرش میکردین تا قیمت های جدید سهام یا پیام های جدید ایمیلتون رو چک میکردید. با ظهور وب سرویس ها و صفحه های HTML داینامیک این تغییر کرد و حالا دیگه خود صفحه ها خود به خود توی بازه های زمانی مختلف بدون نیاز به ریلود کل صفحه آپدیت میشن.
توجه داشته باشید که خیلی از وب سرویس ها از یک تکنولوژی متفاوت به اسم SOAP استفاده میکنن، که مخفف Simple Object Access Protocol هست که از فرمت XML (eXtensible Markup Language) استفاده میکنه. یه سری تکنولوژی های نوظهوری هم مثل protocol buffer گوگل هستن که دارن بیشتر میشن. با اینکه هر کدوم از این تکنولوژی ها نکات مثبت و منفی و کاربرد های خودشون رو دارن، ما فعلا فقط از REST و JSON توی این کارگاه استفاده میکنیم، چون که در حال حاضر رایج و پراستفاده هستن.