Получаване на всички продукти | RESTful API с помощта на NodeJS и MongoDB

Ако външен скрипт дефинира функции, посочени в HTML (напр. onclick=...), скриптът трябва да се намира в <head> така че да бъде изтеглен незабавно, за да направи функциите достъпни за HTML:

<script src='/.JS/onclicks.js' /> 

Ако външен скрипт прави промени в HTML (например променя всичко с class='special'), той трябва да се намира след <body>, или се намира в <head> с отложено изпълнение, докато се зареди целият HTML:

<script src='/.JS/highlight-special.js' defer='defer' /> 

Използвайки defer има предимството да позволява изтеглянето на скрипта паралелно с HTML, което прави страницата по-бързо заредена.

Също така има възможност за предоставяне на източник на скриптове в <head> и уточняване на async атрибут:

<script src='/.JS/highlight-special.js' async='async' /> 

като defer, скриптът се зарежда паралелно с HTML, но вместо да чака, докато HTML се зареди, за да бъде изпълнен, веднага щом скриптът зареди обработката на HTML временно спира, докато скриптът се изпълнява.

При какви обстоятелства би използвал async да бъде полезен?

По-конкретно, времето не е предсказуемо, така че изглежда няма предимство да стартирате скрипта преди HTML да се зареди (нещо, което ще завърши по-рано, ако defer вместо това е посочено).

The async attribute е полезен за скрипт, който:

  1. Не зависи от това дали HTML кодът е напълно зареден
  2. Не трябва да блокира HTML
  3. И все пак трябва да се изпълни възможно най-скоро

Перфектен пример за това е скрипт за анализ. Ако сте го заредили без никакви атрибути, това ще блокира останалата част от изобразяването на страницата. Ако сте го заредили с defer, той би се изпълнил ненужно късно в цикъла на страницата и може да пропуснете изпращане на събитие за преглед на страница.

За скрипт за анализ, async е точно. Не блокира, но все още изпълнява възможно най-скоро.

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?