WebAssembly چیست؟ وب اسمبلی در طراحی سایت
WebAssembly نوع جدیدی از کدهای قابل اجرا در مرورگرهای مدرن است که بر خلاف کدهای قدیمی جاوااسکریپت و ویبیاسکریپت، به صورت کدهای سطح بالا نیست. WebAssembly کدهایی کامپایل شده از یک زبان سطح بالا مانند C++ یا Rust یا Javascript است که با سرعتی بسیار بالا در مرورگرها قابل اجرا است.
WebAssembly به گونهای توسعه یافته است که بتوان از آن در کنار جاوااسکریپت استفاده نمود. توسعهی استاندارد جدید wasm توسط کنسرسیوم وب جهانی و با همکاری شرکتهای موزیلا، اپل، گوگل و مایکروسافت در حال انجام میباشد.
مزیتهای استفاده از WebAssembly
WebAssembly چند مزیت اصلی دارد:
- سرعت اجرای بسیار بالا در مقایسه با کدهای برنامهنویسی قدیمی مانند جاوااسکریپت
- حجم کم کدهای کامپایل شده نسبت به کدهای جاوااسکریپت
- عدم نیاز به کامپایل مجدد در زمان اجرا
- امکان مخفی کردن کدهای سطح بالا توسط برنامهنویسان
- امکان برنامهنویسی در محیط مرورگر با زبانهای مختلف و مورد علاقه و در نهایت کامپایل آن
کاربردهای عملی وب اسمبلی
چندین پروژهی جدید در دنیای وب ایجاد شدهاند که پیش از WebAssembly بسیار دور از ذهن یا گاهی ناممکن بودهاند برای مثال کتابخانهی Opus & Wave Recorder با استفاده از جاوااسکریپت و Web Audio API، صدای کاربر را ضبط میکند و در همان محیط مرورگر آن را به OGG تبدیل میکند.
کتابخانههای دیگری نیز فعالیتهایی که پیش از این در محیط مرورگر امکانپذیر نبودند را در دسترس قرار دادهاند.
محدودیتهای WebAssembly
WebAssembly با هدف ایجاد مزیت سرعت در کنار جاوااسکریپت طراحی شده است و قصد ندارد جایگزین جاوااسکریپت شود. به همین دلیل محدودیتهایی نیز دارد که مهمترین آن، عدم دسترسی به DOM است. به عبارت دیگر، کدهای مدیریت و کنترل صفحات وب میبایست توسط جاوااسکریپت نوشته شوند و از سرعت و تواناییهای wasm جهت انجام محاسبات یا پردازشهای سنگین به ویژه در نرمافزارها یا بازیهای تحت وب کمک گرفته شود.
استفاده از WebAssembly در طراحی سایت
با توجه به اینکه این روش جدید کدنویسی در صفحات وب هنوز به وضعیت پایدار نرسیده است، روشی در دسترس مانند تگ script در html برای آن تعریف نشده است و لازم است تا با استفاده از دستورات جاوااسکریپت، کدهای wasm را ابتدا از هاست دریافت و سپس اجرا نماییم.
پشتیبانی از WebAssembly در مرورگرهای وب
همان طور که گفته شده این تکنولوژی هنوز در وضعیت پایدار منتشر نشده است و به همین دلیل اجرای آن در مرورگرها ممکن است با برخی موانع یا ناهماهنگیهایی روبرو باشد. ولی به طور کلی اغلب مرورگرهای مدرن از جمله فایرفاکس و کروم، از این تکنولوژی پشتیبانی میکنند.
فرمت متنی WebAssembly
مشابه آنچه در زبان اسمبلی وجود دارد، یک زبان سطح پایین با نام WebAssembly Text نیز در حال توسعه است که میتواند به صورت مستقیم به WebAssembly کامپایل شود. تولید WebAssembly Text میتواند به صورت دستی توسط برنامهنویسان یا از تبدیل یک زبان سطح بالا مانند Rust به انجام برسد.
بسیار جالب
عالی، ممنون از مطلب جالبتون
سلام یه سوال داشتم وب اسمبلی در بک اند سایت استفاده میشه یا فرانت اند
با سلام
ویژگی مهم وب اسمبلی امکان استفاده از آن در محیط مرورگر است. در محیط بکاند محدودیتها به این شکل وجود ندارند که نیازی به این فناوری باشد.