Pytania dotyczące metody document.write

Eksperymentuję z metodą zapisu i zdarzeniem onload. Oto mój kod:

<!DOCTYPE html>
<html>
    <head>
    </head>
    <body onload="document.write('body loaded!')">
        <h1>Hello World!</h1>
        <img onload="document.write('img loadeld!')" src="smiley.gif" alt="Smiley face" width="42" height="42" />
    </body>
</html>

Jeśli uruchomię to w przeglądarce, wyświetla „img loadeld” i po prostu „zawiesza się”, wydaje się, że strona ładuje się nieskończenie. Spodziewałem się, że przeglądarka wyświetli „img loadeld”, a następnie jako element ciała będzie gotowy „załadowany do ciała” i po prostu zatrzyma się tak jak zwykle.

Moje pytania:

Dlaczego jest taki powiesić? Dlaczego zdarzenie onload na elemencie img blokuje kontynuowanie i renderowanie przeglądarki „załadowane ciało”?Dlaczego, jeśli usunę program obsługi onload z elementu img, odpowiedź jest zgodna z oczekiwaniami - „ciało załadowane” i strona nie jest zablokowana.

questionAnswers(5)

yourAnswerToTheQuestion