Sobes.tech
Middle

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

sobes.tech AI

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

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

აქ არის სქემა, რომელიც მიმოიხილავს განსხვავებებს:

ატრიბუტი იტვირთება შესრულება HTML-ის ანალიზის ბლოკირება სკრიპტების წესრიგი
არ არის სინქრონი იტვირთვისთანავე დიახ გარანტირებული
async ასინქრონული იტვირთვისთანავე (თუ HTML ჯერ კიდევ ანალიზდება) დიახ (შესრულების დროს) არ არის გარანტირებული
defer ასინქრონული HTML-ის სრული იტვირთვისა და DOM-ის მშენებლობის შემდეგ არა (მხოლოდ შესრულების დროს, მაგრამ HTML-ის შემდეგ) გარანტირებული