Sobes.tech
Middle

რა განსხვავებაა <script>, <script async> და <script defer> ტეგებს შორის?

sobes.tech AI

პასუხი AI-სგან

ჩვეულებრივი <script>: ბრაუზერი აჩერებს HTML-ის ანალიზს, იტვირთება და ასრულებს სკრიპტს, შემდეგ განაგრძობს ანალიზს. ბლოკავს გამოსახულებას.

<script async>: სკრიპტი იტვირთება ასინქრონულად, HTML-ის ანალიზი გრძელდება. სკრიპტი შესრულდება დაუყოვნებლივ შემდეგ ლოდინს და შეუძლია გაწყვეტს HTML-ის ანალიზს. სკრიპტების შესრულების სია არ არის გარანტირებული.

<script defer>: სკრიპტი იტვირთება ასინქრონულად, HTML-ის ანალიზი გრძელდება. სკრიპტის შესრულება გადადებულია HTML-ის ანალიზის და DOM-ის ხის მშენებლობის დასრულებამდე. სკრიპტები შესრულდება HTML-ში მათი გამოჩენის წესით.

ატრიბუტი HTML ანალიზი სკრიპტის ლოდინი სკრიპტის შესრულება წესის დამოკიდებულება
არ არის შეჩერება ბლოკირებადი ბლოკირებადი გარანტირებული
async გრძელდება არ ბლოკავს შეიძლება გაწყვიტოს ანალიზი არ არის გარანტირებული
defer გრძელდება არ ბლოკავს HTML-ის ანალიზის შემდეგ გარანტირებული