آموزش Asynchronous در جاوا اسکریپت

جاوا اسکریپت نوعی زبان برنامه‌ نویسی تک‌رشته‌ای است که در یک زمان تنها یک اتفاق می‌تواند در آن رخ بدهد. این بدان معناست که موتور جاوا اسکریپت فقط می‌تواند یک جمله را در زمانی معین ...

5 (2 امتیاز)
361 دانشجو
مقدماتی
محتوای دوره
پیش‌نیاز‌ها
درباره دوره
نظرات کاربران
درباره استاد

آنچه در این دوره می‌آموزید

آموزش برنامه نویسی ناهمگام در جاوا اسکریپت

آموزش مفاهیم ناهمگامی و همگامی در برنامه نویسی

آموزش ناهمزمانی در جاوا اسکریپت

ناهمزمانی در جاوا اسکریپت

محتوای دوره

5 فصل 25 جلسه 4 ساعت ویدیو
فصل اول: برنامه‌نویسی ناهمگام (Asynchronous)
فصل دوم: API) Application Programming Interface)
فصل سوم: AJAX) Asynchronous JavaScript and XML)
فصل چهارم: Fetch API
فصل پنجم : پروژه وضعیت آب و هوا

پیش‌نیاز‌ها

در دوره جاوا اسکریپت ناهمگام تنها به مبحث برنامه نویسی ناهمگام می‌پردازیم. یعنی شما باید از قبل به طور کامل با زبان برنامه نویسی جاوا اسکریپت آشنایی داشته باشید. همچنین برای یادگیری کامل انجام پروژه نهایی این دوره بهتر است با بوت استرپ 4 و شیءگرایی در جاوا اسکریپت هم آشنایی داشته باشید؛ بنابراین توصیه می‌کنیم قبل از شروع آموزش جاوا اسکریپت Asynchronous دوره‌های زیر را بگذرانید:

درباره دوره

جاوا اسکریپت نوعی زبان برنامه‌ نویسی تک‌رشته‌ای است که در یک زمان تنها یک اتفاق می‌تواند در آن رخ بدهد. این بدان معناست که موتور جاوا اسکریپت فقط می‌تواند یک جمله را در زمانی معین در یک‌رشته اجرایی واحد پردازش کند. مزیت زبان‌های تک‌رشته‌ای این است که نوشتن کد را ساده‌تر می‌کنند. به این پدیده ناهمگامی (Asynchronous) می‌گویند؛ که دوره آموزش Asynchronous در جاوا اسکریپت با هدف آموزش این ترند جذاب در برنامه نویسی ارائه شده است. در برنامه‌های ناهمگام اگر یک تابع برای اجرا به نتیجه تابع دیگری نیاز داشته باشد، باید ابتدا منتظر بماند که آن تابع کار خود را انجام دهد، سپس بعد از دریافت نتیجه کار خود را شروع کند. در این زمان برنامه برای کاربر کاملاً متوقف می‌شود.

این ناهمگامی باعث هدر رفتن زمان و استفاده نامناسب از قدرت پردازش کامپیوتر می‌شود؛ بنابراین روشی ایجاد شد که با کمک آن می‌توان کار را به هسته پردازش دیگری واگذار کرد و کارها را به صورت هم‌زمان پیش برد. در ادامه به معرفی دوره آموزش Asynchronous در جاوا اسکریپت خواهیم پرداخت و در ادامه کمی در رابطه با ناهمگامی (Asynchronous) و همگامی (Synchronous) در جاوا اسکریپت صحبت خواهیم کرد.

معرفی دوره آموزش Asynchronous در جاوا اسکریپت

برنامه نویسی ناهمگام (Asynchronous) و همگام (Synchronous) از مباحث فوق‌العاده مهم در آموزش برنامه نویسی جاوا اسکریپت هستند که در این دوره به آن می‌پردازیم. دوره آموزش Asynchronous در جاوا اسکریپت یک دوره پروژه محور با هدف آموزش ناهمگامی در جاوا اسکریپت است که توسط استاد علی شیخ در قالب ٤ ساعت محتوای ویدیویی به کاربران ارائه خواهد شد.

هدف از یادگیری دوره آموزش Asynchronous در جاوا اسکریپت چیست؟

از مهم‌ترین نکاتی که برای آموزش زبان جاوا اسکریپت باید مدنظر قرار دهید، تکنیک‌های ناهمگامی در برنامه‌نویسی مخصوصاً برنامه‌نویسی وب است. تصور کنید یک وب اپلیکیشن در مرورگر در حال اجرا شدن است. زمانی که کدهای سنگین بدون بازگرداندن کنترل به مرورگر اجرا می‌شوند، از دید کاربر ممکنه این‌گونه به نظر برسد که مرورگر مسدود شده است.

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

دوره آموزش Asynchronous در جاوا اسکریپت مناسب چه کسانی است؟

این دوره آموزش Asynchronous در جاوا اسکریپت برای افراد زیر بسیار مناسب است:

  • کسانی که به آموزش زبان جاوا اسکریپت علاقه‌مند هستند.
  • کسانی که دوست دارند طراحی سایت را به‌صورت حرفه‌ای‌تر یاد بگیرند.
  • کسانی که به انجام پروژه با استفاده از زبان جاوا اسکریپت علاقه دارند.

بعد از فراگیری دوره آموزش Asynchronous در جاوا اسکریپت چه مهارت‌هایی کسب خواهید کرد؟

افراد با شرکت در این دوره آموزش ناهمگامی در جاوا اسکریپت مهارت‌های زیر را کسب خواهند کرد:

  • آشنایی کامل با مفاهیم همگامی و ناهمگامی در برنامه‌نویسی
  • کار با Callback ،Promise و Async/Await و facecade و ابعاد مختلف این تابع
  • آشنایی با API ها و REST API
  • یادگیری مفاهیم async و await در جاوا اسکریپت و همچنین نحوه استفاده async await  
  • کار با AJAX و انواع متدهای GET و POST
  • کار با استاندارد جدید Fetch API و انواع متدهای GET & POST & PUT & Delete
  • ایجاد یک پروژه برای تعیین وضعیت آب‌وهوا

ویژگی‌های متمایز دوره آموزش Asynchronous در جاوا اسکریپت مکتب‌خونه چیست؟

دوره آموزش Asynchronous در جاوا اسکریپت به‌صورت پروژه محور تهیه شده است؛ یعنی شما مباحث فوق‌العاده کاربردی و مهم را گام‌به‌گام همراه با مشاهده پروژه‌هایی که توسط استاد انجام می‌شود، یاد می‌گیرید و درنهایت می‌توانید آموخته‌های خود را در قالب پروژه‌های متنوع پیاده کنید. مکتب‌خونه برای سهولت در امر یادگیری شما عزیزان امکان تالار گفتگو را برایتان فراهم کرده است. در این تالار می‌توانید سؤالات خود را مطرح کنید و با دیگران به اشتراک بگذارید.

سرفصل‌های دوره آموزش Asynchronous در جاوا اسکریپت چیست؟

مبحث Synchronous و Asynchronous از مهم‌ترین مباحث موجود در برنامه نویسی جاوا اسکریپت است که در این دوره آموزش Asynchronous در جاوا اسکریپت به‌خوبی به آن می‌پردازیم. در ابتدا با این دو مفهوم به‌خوبی آشنا می‌شوید و تفاوت آن‌ها را درک می‌کنید. در ادامه به مباحث مرتبط با API‌ها،‌ AJAX ها و متدهای مرتبط با آن و همچنین استاندارد جدید Fetch API که یک جایگزین خوب برای AJAX محسوب می‌شود، می‌پردازیم. در انتهای دوره یک پروژه وضعیت آب‌وهوا باهم پیاده می‌کنیم.

مقدمه‌ای بر برنامه نویسی ناهمزمان و همزمان 

همزمان (Asynchronous) که گاهی اوقات به‌عنوان «همگام» نیز از آن یاد می‌شود و ناهمزمان (Synchronous)، همچنین به‌عنوان «ناهمگام» شناخته می‌شود، دو نوع از مدل‌های برنامه نویسی هستند. همچنین درک تفاوت این دو مدل در ساخت رابط‌های برنامه نویسی کاربردی (API)، ایجاد معماری‌های مبتنی بر رویداد و تصمیم‌گیری در مورد نحوه رسیدگی به وظایف طولانی‌مدت بسیار حائز اهمیت خواهد بود. در انتخاب روش و زمان استفاده از آن، دانستن چند نکته کلیدی در مورد برنامه نویسی همزمان و برنامه نویسی ناهمزمان مهم است. در دوره آموزش Asynchronous در جاوا اسکریپت با تفاوت این دو نوع برنامه نویسی آشنا خواهیم شد.

برنامه نویسی ناهمزمان چیست؟

برنامه نویسی ناهمزمان (Asynchronous) یک مدل چند رشته‌ای است که بیشترین کاربرد را در شبکه و ارتباطات دارد. Asynchronous یک معماری غیر مسدودکننده است، به این معنی که اجرای بیشتر را در زمانی که یک یا چند عملیات در حال انجام است مسدود نمی‌کند.

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

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

برنامه نویسی همزمان چیست؟

Synchronous به‌عنوان یک معماری مسدودکننده شناخته می‌شود و برای برنامه نویسی سیستم‌های واکنشی ایده آل است. این مدل به‌عنوان یک مدل تک‌رشته‌ای، از مجموعه‌ای دقیق از توالی‌ها پیروی می‌کند، به این معنی که عملیات در یک زمان و با نظم کامل انجام می‌شوند. در حالی که یک عملیات در حال انجام است، دستورالعمل‌های عملیات دیگر مسدود می‌شوند. تکمیل اولین کار، کار بعدی را تحریک می‌کند.

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

برنامه نویسی ناهمگام و همگام در جاوا اسکریپت

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

اگرچه جاوا اسکریپت طبیعتاً همزمان است، اما می‌تواند از کدهای ناهمزمان بهره ببرد. زیبایی جاوا اسکریپت این است که بهترین‌های هر دو جهان ناهمگامی و همگامی، تک‌رشته‌ای و چند رشته‌ای، مسدودکننده و غیر مسدودکننده را ارائه می‌دهد. با این انعطاف، برنامه نویسان می‌توانند به‌جای دو زبان برنامه نویسی در یک زبان برنامه نویسی واحد بنویسند، یکی برای عملیات همزمان و دیگری برای عملیات ناهمزمان. در دوره آموزش Asynchronous در جاوا اسکریپت کاربران با نوشتن این‌گونه برنامه نویسی در جاوا اسکریپت آشنا خواهند شد.

برنامه نویسی ناهمزمان در مقابل برنامه نویسی همزمان

درنهایت انتخاب بین این دو رویکرد، به وابستگی‌های عملیاتی بستگی دارد. آیا می‌خواهید شروع یک عملیات به تکمیل یک عملیات دیگر وابسته باشد یا می‌خواهید به‌طور مستقل اجرا شود؟

Asynchronous یک معماری غیر مسدودکننده است، بنابراین اجرای یک کار به دیگری وابسته نیست و وظایف در آن می‌توانند به‌طور همزمان اجرا شوند. همزمان یک معماری مسدودکننده است، بنابراین اجرای هر عملیات به تکمیل عملیات قبل از آن بستگی دارد. در واقع در این رویکرد هر کار قبل از رفتن به تکرار بعدی نیاز به پاسخ دارد.

به صورت کلی تفاوت بین ناهمزمان و هم‌زمانی عبارت‌اند از:

  • Async چند رشته‌ای است، به این معنی که عملیات یا برنامه‌ها می‌توانند به صورت موازی اجرا شوند. همگام‌سازی تک‌رشته‌ای است، بنابراین تنها یک عملیات یا برنامه در هر زمان اجرا می‌شود.
  • Async غیر مسدودکننده است، به این معنی که چندین درخواست را به یک سرور ارسال می‌کند. همگام‌سازی مسدود می‌شود، هر بار فقط یک درخواست برای سرور ارسال می‌کند و منتظر می‌ماند تا آن درخواست توسط سرور پاسخ داده شود.
  • Async توان عملیاتی را افزایش می‌دهد زیرا چندین عملیات می‌توانند همزمان اجرا شوند. همگام‌سازی کندتر و شفاف‌تر است.

جدای از تفاوت‌ها، روش‌های ناهمزمان و همزمان هر دو مزیت‌هایی را ارائه می‌دهند، اما برای ذینفعان مختلف: برای مثال Async برای کاربران، Sync برای توسعه‌دهندگان مفید خواهد بود.

برنامه نویسی ناهمزمان با کاهش زمان تأخیر بین فراخوانی یک تابع و بازگشت مقدار آن تابع، تجربه کاربر را افزایش می‌دهد. در دنیای واقعی، این به یک جریان سریع‌تر و بدون درز ترجمه می‌شود. برای مثال، کاربران می‌خواهند برنامه‌هایشان سریع اجرا شود، اما واکشی داده‌ها از رابط برنامه‌نویسی برنامه (API) به زمان نیاز دارد. در این موارد، برنامه‌نویسی ناهمزمان به بارگذاری سریع‌تر صفحه‌های برنامه کمک می‌کند و تجربه کاربر را بهبود می‌بخشد.

از طرف دیگر برنامه نویسی همزمان برای توسعه‌دهندگان سودمند خواهد بود زیرا کد نویسی برنامه نویسی همزمان بسیار ساده‌تر است. همچنین در بین همه زبان‌های برنامه‌نویسی به‌خوبی پشتیبانی می‌شود و به‌عنوان روش برنامه‌نویسی پیش‌فرض، توسعه‌دهندگان نیازی به صرف زمان برای یادگیری چیز جدیدی ندارند که می‌تواند راه را برای باگ‌ها باز کند.

زمان استفاده از برنامه نویسی ناهمگام

برنامه نویسی ناهمزمان فقط باید در برنامه نویسی کارهای مستقل و در جایی که نقش مهمی ایفا می‌کند، اجرا شود. به‌عنوان مثال، برنامه‌های ناهمزمان برای پروژه‌های توسعه با تعداد زیادی تکرار ایده آل هستند. ازآنجایی‌که مراحل لازم نیست دنباله‌ای ثابت را دنبال کنند، برنامه نویسی ناهمزمان توسعه را به جلو نگه می‌دارد.

UI پاسخگو یک مورد استفاده عالی برای برنامه‌ریزی ناهمزمان است. به‌عنوان مثال، یک برنامه خرید را در نظر بگیرید. هنگامی که یک کاربر سفارش خود را ثبت می‌کند، اندازه فونت باید افزایش یابد. به‌جای اینکه ابتدا منتظر بارگذاری تاریخچه و به‌روزرسانی اندازه فونت باشید، برنامه نویسی ناهمزمان می‌تواند هر دو عمل را به‌طور همزمان انجام دهد. در دوره آموزش Asynchronous ما با ابعاد بیشتری از این زبان برنامه نویسی آشنا خواهیم شد.

زمان استفاده از برنامه نویسی همگام

برنامه نویسی ناهمزمان نسبتاً پیچیده است. می‌تواند مسائل را بیش از حد پیچیده کند و خواندن کد را دشوار کند. از سوی دیگر، برنامه نویسی همزمان، نسبتاً ساده است. نوشتن کد آن آسان‌تر و نیازی به ردیابی و اندازه‌گیری جریان فرآیند ندارد (همان‌طور که async انجام می‌دهد). ازآنجایی‌که وظایف به یکدیگر وابسته هستند، باید بدانیم که آیا آن‌ها می‌توانند به‌طور مستقل بدون ایجاد وقفه در یکدیگر اجرا شوند یا خیر.

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

نحوه انتخاب بین برنامه نویسی ناهمزمان و همزمان

هنگام تصمیم‌گیری برای اتخاذ رویکرد، بهتر است که برنامه نویسی ناهمزمان را سازگار و برنامه نویسی همزمان را سخت‌گیرانه در نظر بگیرید. برنامه نویسی ناهمزمان یک کار چندوظیفه‌ای است که از یک کار به کار دیگر منتقل می‌شود و پس از اتمام هر یک به سیستم هشدار می‌دهد. برنامه نویسی همزمان به‌عنوان مسیری مستقل عمل می‌کند و کاری را در زمانی معین در یک توالی سفت‌وسخت بررسی می‌کند.

برنامه نویسی ناهمزمان اجازه می‌دهد تا کارهای بیشتری به‌طور همزمان انجام شود و معمولاً برای بهبود تجربه کاربر با ارائه یک جریان بارگذاری سریع و بی‌دردسر استفاده می‌شود. برنامه نویسی همزمان به بهترین وجه در سیستم‌های واکنشی استفاده خواهد شد. کد نویسی با این رویکرد برای توسعه‌دهندگان ساده‌تر است و توسط هر زبان برنامه‌نویسی شناسایی می‌شود. همچنین همگام‌سازی دارای منابع فشرده است و می‌تواند سرعت کار را کاهش دهد.

سخن پایانی

ناهمگامی و همگامی از مباحث مهم برنامه نویسی در جاوا اسکریپت به‌حساب می‌آیند. یادگیری این مفاهیم بسیار ساده است و به کاربران کمک می‌کنند که پروژه‌های جاوا اسکریپت خود به نحو احسن پیاده‌سازی کنند. اگر به فکر یادگیری برنامه نویسی ناهمگام و همگام هستید هم‌اکنون با ثبت‌نام در دوره آموزش Asynchronous در جاوا اسکریپت، اولین و مهم‌ترین قدم در این مسیر را بردارید.

همچنین پیش‌نیاز این دوره مفاهیم مقدماتی زبان برنامه نویسی جاوا اسکریپت است که می‌توانید از منابع و دوره‌های آموزش جاوا اسکریپت مکتب خونه برای این هدف استفاده کنید.

اطلاعات بیشتر

امتیاز و نظرات کاربران

5

از مجموع 2 امتیاز

2 نظر

27 روز پیش

بسیار دوره ارزشمند و خوبی است- در عین این که مختصر توضیح داده شده، از جامعیت کافی برخوردار است و به مفاهیم اساسی هم وارد شده است. مثال ها جنبه کاربردی دارند و از همه مهم تر، با افزوده شدن مباحث مربوط به REST API هم آموزش را کامل تر و کارآمدتر کرده است و شاید کمتر آموزش فارسی زبانی باشد که اینقدر این مفاهیم سخت را به این خوبی توضیح داده باشد (خصوصا مفهوم Event Loop و مبانی برنامه نویسی آسنکرون). به عنوان مدرس از مطالب این آموزش ایده های خوبی گرفتم و استفاده کردم و از ایشان ممنونم.

یحیی پورسلطانی

یحیی پورسلطانی

3 سال پیش

خیلی ساده و روان و با کیفیت مبحث رو مطرح کردن, خداقوت استاد

محمدحسین موتمنی

محمدحسین موتمنی

دوره‌های پیشنهادی

درباره استاد

علی شیخ
علی شیخ
19 دوره
37,403 دانشجو

علی شیخ در سال ۱۳۹۴ در رشته مهندسی کامپیوتر فارغ‌التحصیل شد و به عنوان برنامه‌نویس وب در شرکت معدنی و صنعتی چادرملو شروع به کار کرد. تخصص اصلی ایشان در زبان‌های جاوا اسکریپت و php است. وی به دلیل این که به آموزش علاقه زیادی داشت، تصمیم به راه‌اندازی وب‌سایتی در این زمینه به نام وب پروگ گرفت و اکنون از سال 1398 تاکنون توانسته‌است سهم کوچکی در آموزش به افراد علاقه‌مند به برنامه‌نویسی را داشته باشد.

اطلاعات بیشتر

دیگر دوره‌های علی شیخ

سوالات پرتکرار

حداقل و حداکثر زمانی که می توانم یک دوره را بگذرانم چقدر است؟

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

پس از سپری شدن زمان دوره، به محتوای دوره دسترسی خواهم داشت؟

بله؛ پس از سپری شدن مدت زمان دوره شما به محتوای دوره دسترسی خواهید داشت و می توانید از ویدئوها، تمارین، پروژه و دیگر محتوای دوره در صورت وجود استفاده کنید ولی امکان تصحیح تمارین توسط پشتیبان و دریافت گواهی نامه برای شما وجود نخواهد داشت.