به گزارش آی تابناک : زمانی که یک مرورگر وب را انتخاب میکنید شما یک موتور مرورگر و یک موتور اجرا نیز انتخاب میکنید که البته گاهی اوقات با هم یکسان و گاهی اوقات با هم متفاوتاند. موتور اجرا صفحات را به نمایش میگذارد و موتور مرورگر ارتباط بین موتور اجرا و رابط کاربری مرورگر را برقرار میکند.
البته همانطور که گفته شد این دو موتور همیشه از هم جدا نیستند. همچنین موتور جاوا اسکریپت نیز کدهای سایتها را پردازش میکند. پس تا اینجا فهمیدیم که هر سه موتور اجرا، مرورگر و جاوا اکسریپت با هم کار میکنند تا کد وب خام را برای مرورگر شما قابلنمایش و استفاده کنند.
سه موتور اصلی در وب وجود دارد: وبکیت (موتور سافاری)، گیکو (موتور فایرفاکس) و بلینک (موتور کروم، اپرا، Brave و غیره). ما به جزئیات نمیپردازیم ولی با شنیدن نام کرومیوم گمراه نشوید. کرومیوم چیزی است بین بلینک و گوگل کروم کامل (یا مایکروسافت اج جدید) که همان استخوانبندی را دارد و همچنین مرورگر اپن سورسی است که بقیه میتوانند براین اساس روی آن کار کنند.
حال شما نام سه موتور اصلی مرورگرها را میدانید اما آنها دقیقا چه هستند؟ وظیفه آنها این است که کدهای HTML، CSS و دیگر کدهای یک صفحه اینترنت (مثل محتوای پیج، استایل و ظاهر صفحه) را به چیزی که روی صفحه میبینید تبدیل میکند.
به زبانی دیگر یک موتور مانند یک مترجم عمل میکند که کد خامی که نمیتوانید بفهمید را به صفحهای ترکیب شده از متن و گرافیک تبدیل میکند. موتور مرورگر است که انتخاب میکند چیزی که یک توسعهدهندهی وب تایپ کرده است چگونه نمایش داده میشود و چگونه اجرا میشود.
در واقع همانطور که موتور ماشین مهمترین بخش آن است موتور مرورگر نیز همینطور است. چیزهای دیگر مثل منوها، افزونهها، جستوجوی هوشمند و غیره، اگر شما نتوانید سایتها را درست ببینید، بیمعنی میشوند.
خب حال چرا موتورهای مختلف ساخته شده است؟ در حقیقت برنامهنویسان مختلف ایدههای مختلفی برای چگونه کار کردن یک موتور مرورگر دارند مثل چگونگی نمایش رنگها، بهینهسازی کد و غیره. در سال 2013 گوگل موتور بلینک را در جهت بهبود نقطه ضعفهای موتور وبکیت در انجام پردازشهای زیاد، راه انداخت.
تصور کنید که میخواهید یک راه نمایش جدید و بهبودیافته ویدیوها را توسط یک متن روی سایتی معرفی کنید. برای این کار نیاز دارید که یک موتور مرورگر از شما پشتیبانی کند. اگر این پشتیبانی انجام نشد و توانستید طراحان موتور دیگری را نیز با خود همراه کنید، شاید به فکر ساخت موتور مرورگر برای خودتان بیفتید. این نمونهای از داستان چگونگی شکلگیری موتورهای امروزی است. (اگرچه بعضی موتورهای جدید با شکست نیز مواجه میشوند مثل موتور مرورگر مایکرسافت)
موتورهای مرورگر دلیل اصلی متفاوت بودن ظاهر، سرعت بارگیری و عملکرد بسیاری از صفحات اینترنتی در مرورگرهای مختلفاند به همین دلیل تفاوتهای مرورگرهای سافاری و فایرفاکس و کروم به موتورهای آنها برمیگردد. با پیشرفت وب تفاوتهای دیداری و سطحی بسیار کمشده (و حتی در بیشتر جاها وجود ندارد) و به تکنولوژیهای زیرساختی کشیده شده است.
هر قسمت از اجرای یک صفحه و دستورات پشت اجرای آن به موتور مرورگرها مرتبط است. اگرچه موتورها پردازشهای مختلف را تقریبا از راههای یکسانی انجام میدهند ولی با هم تفاوتهایی هم دارند. مثلا امنیت برنامههای تحت وب برای هر مرورگر متفاوت است.
با روندی که سایتها و برنامههای روی آنها هر روز پیچیدهتر میشوند، موتورهای مرورگرها هم باید از کدهای بیشتری پشتیبانی کنند. سایتها دیگر همانند دورهی اختراع مرورگرها استاتیک نیستند. اما چگونگی پردازش و اجرای این کدهای دینامیک راه موتورهای مرورگرها را از هم جدا میکند و تاثیر زیادی بر سرعت نمایش سایتها دارد. (اینجاست که جاوا اسکریپت نقش بزرگی را ایفا میکند)
مثلا طراحان موتور فایرفاکس در حال کار روی نسخهی بهبودیافتهی گیکو به نام کوانتوم هستند که روی این زمینههای مدرن وب تمرکز دارد:
آیا یک موتور مرورگر باید از استانداردهای قدیمی وب پشتیبانی کند و میلیثانیهها را در بارگذاری این صفحات از دست ندهد؟ (این دلیلی است که مایکروسافت ابتدا نسخه 1 اج را توسعه داد) آیا باید ابتدا متن را پردازش کند یا تصویر را؟ پردازشهای زیاد در تبهای مختلف چگونه باید بدون مشکل اجرا شوند؟ همین گونه سوالات هستند که تفاوتهای موتورهای مرورگرهای امروزی را رقم میزنند.
این موتورها باید از استانداردهای جدیدی که با پیچیدهتر شدن هر روزهی اینترنت پیش میروند، پشتیبانی کنند. این دقیقا جاییست که موتور بلینک نسبت به رقبا برتری دارد زیرا گوگل هر روزه برنامههای تحت وب جدیدی میسازد و بهراحتی میتواند این استانداردها را جابهجا کند.
اما مشکلاتی وجود دارند که به توسعهدهندگان مربوطاند و کاربران عادی از آنها باخبر نمیشوند ولی بههرحال چیزی از اهمیت آنها کم نمیکند مانند:
خب بعد از همهی این تعاریف آیا موتور مرورگر شما مناسب است یا وقت تغییر فرا رسیده است؟ در حال حاضر تفاوت بزرگی میان موتورهای مرورگرها وجود ندارند و هر سه موتور مروگرهای کروم، فایرفاکس و سافاری سایتها را با سرعت تقریبا یکسانی پردازش میکنند.
این یکسانی سرعت به این خاطر است که همه آنها استانداردهای اولیه وب یکسانی را قبول کردهاند (دلیل از دور خارج شدن اینترنت اکسپلورر). پس از ویژگی خاصی که مثلا شما را مجبور به ترک وبکیت و روی آوردن به گیکو کند خبری نیست.
از یک جنبه بلینک بهترین موتور مرورگر حال حاضر است (بههرحال از روی آوردن مایکروسافت به این موتور نمیتوان گذشت). این موتور در پردازش صفحات و برنامههای تحت وب بسیار سریع است، آپدیتها به طور منظم برای آن منتشر میشوند، نسبتاً موتور نیرومندی است و باگهای آن بسیار سریع برطرف میشوند. طبق پیشرفت مایکروسافت، بهراحتی میتوان مرورگری بر پایه آن ساخت و با برنامههای دسکتاپ هم بسیار خوب کار میکند. اگرچه مشکل استفاده بیش از حد از حافظه دارد و این مشکل در طول سالهای اخیر بیشتر نیز شده است.
با ارتقا گیکو به کوانتوم، فایرفاکس بسیار پیشرفت کرده است و بهبودهای بسیار خوبی در سرعت آن ایجاد شده است. وبکیت اپل نیز با وجود تمام مخالفان آن همچنان به پیشرفت روی سیستمعامل مک و iOS ادامه میدهد. خلاصه اینکه تفاوتهای موتورهای این مرورگرها علیالخصوص برای کاربران زیاد نیست و میتوانید به استفاده از هر کدام این مرورگرها ادامه دهید.
اما زمانی بلینک تاثیر منفی روی ما میگذارد که فکر کنیم به تکنولوژیهای مرورگر کروم در آینده بیشتر و بیشتر نیازمند خواهیم شد. در واقع توسعهدهندگان این مرورگر در گوگل جوری وانمود میکنند که انگار در بعضی سایتها بدون کروم نمیتوان جلو رفت (که البته روی همه تاثیرگذار نیست). به روایت بهتر این تاثیر منفی زمانی است که پیامهای بسیار بیشتر "works best with Chrome” را ببینید.
با توجه به اپن سورس بودن کرومیوم و روی آوردن توسعهدهندگان مایکروسافت به آن، باید شاهد بهبود عملکرد با توجه به همکاری این دو غول فناوری باشیم. در پایان به خاطر داشته باشید که انتخاب شما فقط راجع مرورگر نیست و به موتور پشت آن نیز مربوط است.