Jeśli nazywamy metodę javascript myMethod()
w tagu skrypt, który jest przed zamknięciem ciało, jest to równoznaczne z wywołaniem myMethod()
wewnątrz funkcji document.ready jQuery? Jeśli nie, dlaczego?jest umieszczenie znacznika script przed równowartość</body> tag metody document.ready jQuery
Odpowiedz
Od here:
Pod maską: $ (document) .ready() Jak można oczekiwać od Jana Resig metoda jQuery dla określania, kiedy DOM jest gotowy wykorzystuje asortyment optymalizacje. Na przykład, jeśli przeglądarka obsługuje zdarzenie DOMContentLoaded (jak ma to miejsce w przypadku wielu przeglądarek innych niż przeglądarki IE), zostanie uruchomione dla tego zdarzenia. Jednak IE nie może bezpiecznie wystrzelić, dopóki dokument nie osiągnie stanu "ukończonego", co zwykle jest później. Jeśli żadna z tych optymalizacji nie jest dostępna, okno.onload wywoła zdarzenie .
Zdarzenia te są niezależne od lokalizacji w obrębie znacznika HTML, ponieważ inne zdarzenia nadal trwają nawet w czasie renderowania </body>
.
Nie, to nie to samo, umieszczeniu <script>
tagów przed zamykającym tagiem </body>
aby uniknąć zablokowania renderowania HTML na starszych przeglądarkach, AFAIK, ale nie masz gwarancji, że DOM jest „gotowy”
Niezupełnie. $(document).ready();
reaguje na tak zwane zdarzenie DOMContentLoaded
, które jest uruchamiane zaraz po wczytaniu DOM, a przeglądarka jest świadoma wszystkich elementów na stronie (a nie samej treści).
Główny powód, dla którego kod jest zwykle umieszczany wewnątrz tych bloków, nie ma nic wspólnego z blokowaniem równoległego ładowania, ale w celu zapewnienia, że elementy, które mają być manipulowane podczas ładowania strony, są w rzeczywistości załadowane i obecne w drzewie DOM. Nie ma sensu manipulowanie elementami, których przeglądarka nie ma pojęcia?
Umieszczenie treści JavaScript (lub innej treści na ten temat) u dołu strony jest bardziej zbliżone do zdarzenia onload
, które jest uruchamiane po zakończeniu ładowania strony, w tym samej zawartości. Tak czy inaczej, prawie pewne jest, że zawartość wewnątrz bloków zostanie wykonana przed tą na dole strony, jednak jeśli załadujesz zewnętrzne biblioteki, na których opiera się kod z bloku ready()
, nie możesz umieścić ich na dole strony.
Ogólnie, jeśli masz kod, który nie jest zależny od zewnętrznych bibliotek i udane ładowanie DOM, możesz bezpiecznie umieścić go na dole strony. Jeśli jednak masz rzeczy, które muszą zostać wykonane zaraz po wczytaniu DOM, zdecydowanie potrzebujesz tego kodu w bloku $(document).ready()
, ale pamiętaj, że możesz umieścić ten blok w dowolnym miejscu, nawet na środku strony (co czasem może być fajną sztuczką).
- 1. Czy umieszczenie znacznika <script> po tagu</body> jest niewłaściwe?
- 2. Document.ready w plikach zewnętrznych?
- 3. Kiedy należy używać funkcji document.ready jQuery?
- 4. Can not init, obiekt w jQuery document.ready
- 5. powinienem używać window.load lub document.ready jQuery
- 6. Nazwa znacznika jQuery elementu
- 7. Jak zabezpieczyć jQuery przed usunięciem znaczników <script>
- 8. JQuery Script Load Timing
- 9. co oznacza umieszczenie gwiazdy przed rejestrem?
- 10. Tag wewnątrz znacznika w szablonie django
- 11. Dodaj/append „<script>” tag html za pomocą JavaScript/jQuery
- 12. jQuery Tag Editor?
- 13. Załaduj jQuery asynchronicznie przed innymi skryptami.
- 14. Znacznik szablonu jquery i znacznika HTML5
- 15. jQuery przyrost wartość <span> tag
- 16. window.location.hash zwraca hash tag przed wartością
- 17. Dlaczego muszę komentować tag <script> w HTML?
- 18. html szablon tag i jquery
- 19. Dlaczego nie można zdefiniować funkcji w dokumencie document.ready()? JQuery
- 20. Czy jQuery może zawierać nazwę znacznika?
- 21. jQuery Link tag pozwalają wyłączyć
- 22. Zapobieganie łączom przed załadowaniem jQuery
- 23. Użyj zmiennej JS, aby ustawić atrybut src dla <script> tag
- 24. Android Google Maps dodać do znacznika własny tag
- 25. Jaka jest różnica między: przed i :: przed?
- 26. Jquery Tag-it b.curCSS nie jest prawidłową błąd funkcja
- 27. Get elementu DOM gdzie tag skrypt jest
- 28. jQuery Tag-It - za pomocą listy obiektów wartości i etykiet
- 29. Zapobieganie wywoływaniu metody przed innym
- 30. $ .ready() przed zamknięciem body