دوستان خوبم مجددا خدمت شما سلام عرض میکنم و بابت عدم انتشار پست در این چند روز ، هم از شما و هم از گوگل عزیز عذر میخوام.

به هر حال مسافرت آنهم رفتن به شمال کشور برای روح و جسم لازم و ضروریست ، جای شما خالی ، رفتیم بندر انزلی و توی دهکده ساحلی در یک ویلای زیبا چند روزی خوش گذشت .

تفریح برنامه نویسان

امروز صبح با یک دوستی دیدار داشتم که بهم گفتن ، آقای حسامی ، من احساس میکنم شما یکسری از مطالب رو از منابع دیگه کپی پیست میکنی ، اولش خیلی متعجب شدم ولی دیدم ممکنه چنین برداشتی بشه ، چون بنده بعضی از مقالاتم رو با زبانی خیلی ساده نوشتم و بعضی هاشونم بصورت معمولی و دلیلشم اینه که در مباحثی که احساس میکنم مخاطبان سردرگم هستند سعی می کنم با ساده ترین زبان ممکن آموزش بدم و امیدوارم شما هم دچار سو برداشت نشید و مطمئن باشید که تمامی مقالات این وبلاگ رو خودم تایپ میکنم و نمیخوام حتی به اندازه یک جمله هم ، گوگل و شما ازم دلخور بشین و امیدوارم شما هم از آموزشها کمال استفاده رو ببرید .

خوب بریم سراغ آموزش امروزمون که در خصوص روند ارسال و دریافت اطلاعات بین مرورگر و سرور هست.

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

* تبادل اطلاعات بین مرورگر و سرور به دو صورت همروند و غیر همروند قابل انجام هست :

نکته :  منظور از همروند یعنی همزمان و همگام عمل کردن چند چیز مجزا

نکته :  منظور از غیر همروند هم یعنی غیر همزمان و ناهمگام عمل کردن چند چیز مجزا

روش همروند یا synchronous :

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

نکته :  در روش همروند پاسخی که از سرور دریافت میشه ، یک صفحه کامل html هست .

روش غیر همروند یا Asynchronous :

در این روش مرورگر درخواست خودش رو به سرور ارسال میکنه بدون اینکه صفحه سفید بشه ، و سرور درخواست ارسال شده رو پردازش میکنه و بلافاصله بعد از اینکه پاسخ آماده شد ، برای مرورگر ارسال میکنه که در طول پردازش درخواست در سمت سرور ، در مرورگر هیچ اتفاقی نمی افته و محتوای قبلی اون همچنان به همان شکل باقی میمونه ولی بلافاصله بعد از اینکه پاسخ از سرور دریافت شد ، تازه مرورگر شروع میکنه به چیدن اطلاعات دریافتی در صفحه که یا در موقعیتی خاص نمایش میده یا جایگزین یکسری اطلاعات قبلی در صفحه فعلی میکنه

برای ییاده سازی روش غیر همروند تکنیکهایی تحت عنوان فناوری ایجکس ارائه شده که شما میتونید براحتی ، تبادل داده بین مرورگر و سرور رو با این روش انجام بدید تا کاربر از دست سایت شما عصبانی نشه و مدام برای ارسال یکسری اطلاعات کوچک مجبور نشه ، کل صفحه رو مجددا از سرور دریافت کنه بلکه در پس زمینه کار اطلاعات رو بفرسته و فقط پاسخ متناظرش رو دریافت کنه و کل صفحه بارگذاری مجدد هم نشه

البته خیلی از افراد همچنان از روش همروند در وبسایت هاشون استفاده میکنن و به خیلی از معایب این روش از جمله : نارضایتی کاربر ، افزایش ترافیک مصرفی سرور و کلاینت و افت سرعت سرور و ... فکر نمیکنن که من امیدوارم همه شما دوستان از روش غیر همروند استفاده کنید و کم کم بریم به سمتی که راحتی کاربر در استفاده از وبسایت، برامون یک امر مهم و ضروری محسوب بشه

نکته : در روش غیر همروند پاسخ سرور ، می تونه هم یک صفحه html کامل باشه هم اینکه می تونه تعدادی تگ html باشه یا حتی یک متن ساده

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

 

امید دارم که این مطلب هم براتون مفید بوده باشه

منتظر نظرات و سئوالات شما در مورد این مطلب و سایر مطالب وبلاگ هستم

ارادتمند شما مهدی حسامی