تبلیغات

تفاوت نوشتن جاوا اسکریپت داخلی و خارجی در یک فایل جدا

همانطور که باید بدانید، در کدنویسی وب، دو روش برای نوشتن کدهای جاوا اسکریپت وجود دارد؛ روش داخلی (inline) و خارجی (external).

در ورش داخلی، کدها در همان فایل HTML و بین تگ باز و بسته‌ی script نوشته می‌شوند؛ اما در روش خارجی، کدها در یک فایل با پسوند js نوشته شده و  توسط یک تگ script، بارگزاری می‌شوند. اما واقعا تفاوت این دو در چیست؟! البته شاید برخی تفاوت‌هایشان را بدانید، اما در این‌جا قصد داریم تا دقیق‌تر آنها را مورد ارزیابی قرار دهیم.

مزایا و معایب هر دو روش

اسکریپت داخلی

  • از آنجایی که در همان صفحه بارگزاری می‌شود، پس نیازی به درخواست به آدرس دیگری ندارند؛ بنابراین بلافاصله و مستقیم اجرا می‌شوند.
  • ویژگی‌های async و defer تگ script در آن هیچ تاثیری ندارند؛ چون کد نوشته شده در همان صفحه بلافاصله و بی‌درنگ باگزاری شده است.
  • می‌تواند در زمانی که بخواهیم خروجی سرورمان یک کد جاوا اسکریپت داینامیکی (پویا/قابل تغییر) را تولید کند؛ مورد استفاده قرار گیرد.
    (برای مثال، یک فایل PHP شامل کدهای HTML و JS را فرض کنید که می‌توانید به راحتی، کدهای داینامیکی را در هرجایی از صفحه تولید کرده و به سمت کلاینت ارسال کنید.)

اسکریپت خارجی:

  • امکان تفکیک ساده‌ی کدها و نگهداری راحت‌تر آن به دلیل مرتب بودن وجود دارد؛ که در نتیجه می‌توان به سادگی کد نوشته شده را دیباگ و آنالیز کرد.
  • دو ویژگی async و defer موجود در تگ script را می‌توان استفاده کرد؛ چون کدها در یک فایل دیگری قرار داشته و هنوز بارگزاری نشده‌اند.
  • وقتی یک اسکریپت خارجی توسط مرورگر دانلود شد، ممکن است آن مرورگر در همان صفحه و صفحات دیگری نیز از آن به عنوان کش استفاده کرده و سرعت را بالا ببرد. (یعنی به طور مجدد آن را بارگزاری نکند)
  • امکان استفاده مجدد از اسکریپت در صفحات دیگر بدون کپی آن به صفحات دیگر وجود دارد و تنها پا یک بار تغییر، در همه جا اعمال خواهد شد.
بنابراین نمی‌توان گفت کدام یک بهتر است! چرا که این مسئله کاملا به مورد استفاده‌ی شما بستگی دارد.
تبلیغات
0
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه