جاوا اسکریپت که به منزله ی یکی از معروف ترین زبانهای برنامه نویسی است، این امکان را در اختیار توسعه دهندگان قرار میدهد تا وب سایتهای خود را تعاملی کنند (البته امروزه از این زبان برای ساخت اپلیکیشن های موبایل نیز استفاده می شود.) به عبارت دیگر، سایت هایی که از قابلیت های زبان جاوا اسکریپت در آن ها استفاده شده، این امکان را در اختیار کاربران خود قرار می دهند تا در شرایط مختلف، فیدبک های مختلفی -همچون جلوه های بصری- از طرف سایت دریافت کنند. برای روشنتر شدن این مسأله، به دو مثال زیر اکتفا می کنیم:
فرض کنیم قصد داریم امکانی در سایت خود فراهم سازیم که اگر کاربری نشانگر ماوس خود را روی یکی از گزینه های منوی اصلی سایت نگه داشت، گزینه های زیر شاخه با افکت خاصی نمایان شوند که چنین افکتی را می توان با استفاده از جاوا اسکریپت عملی ساخت. به عنوان مثالی دیگر، میتوان به قابلیت چک کردن فیلدهای یک فرم اچ تی ام ال با استفاده از کدهای جاوا اسکرپیت پرداخت که مثلاً اگر کاربری به جای یک عدد استرینگ وارد کرد، به وی اخطار داده شود (در اینجا منظور از استرینگ، تعدادی کلمه یا یک عبارت است.) به طور خلاصه، با استفاده از زبان جاوا اسکرپیت میتوان کارهای زیر را انجام داد:
- کنترل کردن ظاهر یک وب سایت مثلاً حذف و اضافه کردن تگ های اچ تی ام ال
- ساخت بخشهای تعاملی وب سایت مثل Menu ها، Date Picker ها و …
- چک کردن ارور فرمها در سمت مرورگر پیش از ارسال درخواست به سرور
- نمایش دادهها با استفاده از چارتها و نمودارها
- استفاده از فناوری AJAX در سایتها به منظور جلوگیری از بارگذاری مجدد صفحات وب و در نتیجه ایجاد یک تجربه ی کاربری به مراتب بهتر
- ایمپورت کردن دادهها از سایر سایت ها و تحلیل آنها و بسیاری کارهای دیگر.
توجه داشته باشیم که زبان جاوا اسکریپت در سال ۱۹۹۶ توسط Brendan Eich که یکی از مهندسین شرکت Netscape بود طراحی و توسعه داده شد که در ابتدا نام آن LiveScript بود که چندی نگذشت که به دلایل خاصی -شاید استفاده از محبوبیت زبان برنامه نویسی Java- نام آن به JavaScript تغییر پیدا کرد اما توجه داشته باشیم که این زبان با زبانی تحت عنوان Java کاملاً فرق دارد.
پیش از این هم توضیح دادیم که یکی از مزایای استفاده از زبان جاوا اسکریپت، فناوری ای جکس است. به طور خلاصه، زمانی که ما از این فناوری در طراحی سایتهای خود استفاده می کنیم، برای گرفتن دادههای جدید از سرور، اصلاً نیازی به بارگذاری مجدد صفحه نخواهد بود -توجه داشته باشیم که بارگذاری مجدد صفحه گاهی اوقات زمان ارزشمند کاربران را تلف می کند- بلکه مرورگر در پشت پرده با سرور به تبادل اطلاعات پرداخته و صفحهای که در آن قرار دارید را بدون نیاز به رفرش شدن، آپدیت می کند. فناوری ای جکس برای سایتهای خبری، بورس و … که اطلاعات آنها در لحظه دستخوش تغییر میشوند خیلی کاربردی است.
کدنویسی در زبان جاوا اسکریپت به مراتب متفاوت تر از کدنویسی با زبانهای اچ تی ام ال و سی اس اس است. به عبارت دیگر، اگر در حین کدنویسی با زبانهای اچ تی ام ال و سی اس اس مرتکب یک ارور سینتکسی شویم -در اینجا منظور از سینتکس، ساختار کدها است- صفحه باز هم بارگذاری میشود و صرفاً آن بخشی که در آن مرتکب خطا شدهایم با مشکل اجرا میشود اما قضیه در مورد زبان برنامه نویسی جاوا اسکریپت به مراتب متفاوت تر است. به عبارت دیگر، این زبان به مراتب سختگیرتر از زبانهای اچ تی ام ال و سی اس اس بوده و مرتکب خطا شده در سورس کد نوشته شده با این زبان، منجر به این خواهد گشت که اجرای بخشی از صفحه ی سایت یا کل آن با مشکل مواجه شود!
آشنایی با فریم ورک های معروف جاوا اسکرپیت
یک Framework یا Library به معنی کتابخانه ی جاوا اسکریپت به مجموعهای از کدهای جاوا اسکریپت از پیش نوشته شده گفته می شود که فرایند توسعه ی نرمافزار را تسهیل می کنند. این کتابخانه ها شامل کدهایی هستند که کارهای رایج در توسعه نرمافزار را به سهولت انجام میدهند و این در حالی است که قبلاً کاملاً تست شدهاند و بدون هیچ باگی، در اختیار توسعه دهندگان دیگر قرار می گیرند. به منظور استفاده از این کتابخانه ها نیز صرفاً نیاز است تا ابتدا کتابخانه ی مد نظر را به اپلیکیشن خود اضافه نموده سپس هر کجا که نیاز داشتیم، از متدهای از پیش نوشته شده ی آن استفاده نماییم. در ادامه، با برخی از کتابخانههای معروف زبان برنامه نویسی جاوا اسکریپت آشنا خواهیم شد:
- jQuery: جی کوئری این امکان را در اختیار توسعه دهندگان قرار میدهد تا به راحتی کارهایی از قبیل ایجاد انیمیشن در صفحات وب، به کارگیری از افکت های بصری زیبا و … را ایجاد کنند. شاید همان افکتی که با جی کوئری ایجاد میکنیم را بتوانیم با کدهای جاوا اسکریپت بنویسیم، اما این در حالی است که با استفاده از کتابخانه ی جی کوئری با تعداد خطوط کد کمتری میتوان همان کار را انجام داد. لازم به ذکر است که کتابخانه ی جی کوئری به عنوان یکی از محبوبترین و پرکاربردترین کتابخانههای زبان برنامه نویسی جاوا اسکریپت است (و ما در سکان آکادمی نیز از این فریم ورک محبوب استفاده می کنیم.)
- AngularJS: فریم ورک آنگولار نسبت به فریم ورک های بکبون و امبر قدیمی تر بوده و عرضه آن به سال ۲۰۰۹ باز میگردد لذا جامعه توسعه دهندگان آن نیز نسبت به رقبایش بیشتر است. در سال ۲۰۱۳ این فریم ورک از دید دولوپرهای مشارکت کننده در توسعه این فریم ورک، جایگاه چهارم را به خود اختصاص داده بود و در سایت گیت هاب هم از دید تعداد ستاره دریافتی، جایگاه سوم را به خود اختصاص داده بود (ستاره در سایت گیت هاب، همچون لایک در شبکه اجتماعی فیسبوک است.) از جمله شرکت های حامی این فریم ورک میتوان به گوگل، نایک، جنرال موتوز و سایت خبری گاردین اشاره کرد. یکی از دلایلی که شرکت های مطرحی همچون موارد فوق الذکر به این فریم ورک روی آوردهاند این است که این فریم ورک نه تنها بسیار انعطاف پذیر است بلکه تغییرات مد نظر را خیلی سریع میتوان در اپلیکیشن های نوشته شده با این فریم ورک اعمال کرد. علاوه بر این، آنگولار جی اس نسب به سایر فریم ورک ها دست دولوپرها را بازتر میگذارد تا کدهای خود را نوشته و تست کنند و پیش از آن که ارورهای ایشان به باگ های بزرگی تبدیل شوند، خواهند توانست آنها را یافته و برطرف کنند. یکی از چیزهای عجیب و غریب در مورد فریم ورک آنگولار جی اس این است که در این فریم ورک از اصطلاحات خاصی استفاده شده که مخصوص این فریم ورک است و شاید دلیل استفاده از چنین اصطلاحاتی این باشد که آنگولار از قابلیتهایی برخوردار است که هیچ فریم ورک دیگری آنها را دارا نمی باشد.
- Backbone.js: بکبون جی اس در سال ۲۰۱۰ به دنیا عرضه شد و جامعه دولوپرهای این فریم ورک هم دست کمی از آنگولار ندارد. وب اپلیکیشن های معروفی همچون توییتر، فوراسکور، لینکدین موبایل، سوندکلود، پیچ فورک و پاندورا از این فریم ورک استفاده می کنند. یکی از نکات قابل توجه در مورد فریم ورک بکبون جی اس حجم دانلود این فریم ورک است که نسبت به سایر رقبا بسیار اندک است. به طور مثال فریم ورک آنگولار 36K است، امبر 69K است اما بکبون جی است صرفاً 6.4K می باشد. این حجم پایین بکبون، برگ برنده آن است و دلیل این مسأله هم آن است که بکبون به جای وابسته بودن به چندین لایبرری جاوا اسکریپت، صرفاً به یک لایبرری وابسته است و همین سبک بودن باعث شده تا دولوپرهایی که می خواهند اپلیکیشن های سریع و واکنش گرا طراحی کنند به این فریم ورک روی آورند. یکی دیگر از مزیتهای این فریم ورک این است که برنامه نویسان حرفهای جاوا اسکریپت خیلی سریع میتوانند شروع به کدنویسی با بکبون کنند. جامعهای که از این فریم ورک پشتیبانی میکند گسترده است و در عین حال پروژه های آماده و همچنین آموزشهای رایگانی هم در گیت هاب و هم سایر سایتها برای این فریم ورک موجود است لذا اگر قصد نوشتن یک اپلیکیشن تک صفحهای یا یک ویجت را در سر دارید، فریم ورک Backbone گزینه مناسبی برای شما است.
- Ember.js: امبر جی اس یکی از جدید ترین فریم ورک ها در نوع خود است اما در همین عمر کوتاه (در سال ۲۰۱۱ به بازار عرضه شده) خود توانسته سهم بازار نسبتاً قابل توجهی را به خود اختصاص دهد. اپلیکیشن های LivingSocial، Groupon، Zendesk، Discourse و Square برخی از نمونههای معروفی اند که از این فریم ورک استفاده کرده اند. به گفته توسعه دهندگان اصلی این فریم ورک، زمانی که شما سایتی را مشاهده میکنید به راحتی میتوانید تشخیص دهید که آیا از امبر استفاده کرده است یا خیر زیرا سایتهایی که از فریم روک Ember استفاده می کنند خیلی سریع لود میشوند و دلیل این مسأله هم آن است که تمامی فرایند رندر شدن در مرورگر کاربر اتفاق می افتد. این قبیل وب سایتها در ظاهر همانند سایتهای عادی هستند اما پشت پرده ساختاری شبیه به یک اپلیکیشن اندروید یا آی او اس دارند که فرایندها در آن ها توسط سرور پردازش نمی شوند. این فریم ورک از بعد حجم عنوان سنگین ترین فریم ورک را به خود اختصاص داده است (۶۹K). گفته میشود که اپلیکیشن هایی که با این فریم ورک نوشته شدهاند پس از این که کامپایل شدند، اندازهای مشابه اپلیکیشن های نوشته شده با سایر فریم ورک ها دارند و شاید دلیل این مسأله آن باشد که سایر فریم ورک ها غالباً در حین فرایند ساخت، لایبرری های اضافی دانلود می کنند. یکی از دلایلی که فریم ورک امبر سایز بیشتری نسبت به رقبا دارد این است که این فریم ورک دارای یکسری خصوصیات از پیش تعریف شده است و همین مسأله منجر شده تا حجم آن افزایش یابد. شاید برای شما هم اتفاق افتاده باشد که در یک وب اپلیکیشن دکمه بازگشت را کلیک میکنید اما به خاطر باگ جاوا اسکریپتی هیچ اتفاقی نمی افتد. خصوصیات منحصر به فرد فریم ورک Ember.js از این دست ارور های کوچک اما آزاردهنده جلوگیری به عمل خواهد آورد. یکی دیگر از برگ برنده های فریم ورک امبر، شبکه پشتیبانی آن است اما اگر شما قصد طراحی یک ویجت کوچک و یا وب اپلیکیشن تک صفحهای را در ذهن می پرورانید، امبر گزینه مناسبی برای شما نخواهد بود اما اگر روی یک پروژه چند صفحهای نسبتاً بزرگ کار می کنید، امبر گزینه مناسبی است.
- Prototype: به گفته ی سایت رسمی این فریم ورک، پروتوتایپ برنامه نویسی سمت کاربر را فارغ از هر گونه پیچیدگی امکان پذیر می سازد. APIهای قدرتمند این کتابخانه قابلیت هایی همچون فناوری ای جکس را در اختیار توسعه دهندگان قرار می دهند که با استفاده از آن ها می توانند تجربه ی کاربری منحصر به فردی ایجاد کنند.
- MooTools: این فریم ورک گلچینی از قابلیت هایی است که با استفاده از زبان برنامه نویسی جاوا اسکریپت می توان عملی ساخت که توسعه دهندگان نیمه حرفه ای و حرفه ای می توانند از آن ها برای رفع نیازهای برنامه نویسی خود استفاده کنند. با استفاده از APIهای مستند، ساده و کاربردی این فریم ورک، توسعه دهندگان خواهند توانست افکت های منحصر به فردی ایجاد کنند.