ویژگی 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 |