ویژگی defer <script> HTML

تعریف و استفاده

defer ویژگی یک ویژگی بولین است.

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

توجه داشته باشید:defer این ویژگی تنها برای اسکریپت‌های خارجی مناسب است (تنها اگر ویژگی src تنها در زمان مناسب باید استفاده شود).

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

  • اگر async تنظیم شده باشد: اسکریپت در حالی که صفحه در حال پردازش است، به صورت موازی دانلود می‌شود، و به محض اینکه قابل استفاده باشد، فوراً اجرا می‌شود (قبل از اینکه پردازش کامل شود).
  • اگر defer تنظیم شده باشد (و async تنظیم نشده باشد): اسکریپت در حالی که صفحه در حال پردازش است، به صورت موازی دانلود می‌شود، و پس از پردازش کامل صفحه اجرا می‌شود.
  • اگر هم async و هم defer وجود نداشته باشد: اسکریپت به صورت فوری دانلود و اجرا می‌شود، و پردازش صفحه را مسدود می‌کند تا زمانی که اسکریپت اجرا شود.

مثال

اسکریپت به طور موازی با تحلیل صفحه بارگذاری می‌شود و پس از اتمام تحلیل اجرا می‌شود:

<script src="demo_defer.js" defer></script>

آزمایش کنید

نحوه‌ی نوشتن

<script defer>

تأخیر در اجرای اسکریپت

شما می‌توانید با استفاده از ویژگی‌های async و defer روش اجرای اسکریپت را کنترل کنید. ویژگی defer به مرورگر می‌گوید که باید منتظر بارگذاری و تحلیل کامل صفحه باشد تا اسکریپت اجرا شود.

وقتی مرورگر به element script با ویژگی defer برخورد می‌کند، بارگذاری و اجرای اسکریپت را به پس از تحلیل تمام عناصر HTML در سند متوقف می‌کند.

این نتیجه مشابهی با جابجایی script به انتهای صفحه دارد:

<body>
... ...
... ...
... ...
<script src="demo.js"></script>
</body>

پشتیبانی مرورگر

اعداد در جدول نشان‌دهنده نسخه اولیه مرورگرهایی است که از این ویژگی پشتیبانی می‌کنند.

Chrome Edge Firefox Safari Opera
Chrome Edge Firefox Safari Opera
8.0 10.0 3.5 5.0 15.0