• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sprawdzenie czy element został wyświetlony [js]

Object Storage Arubacloud
0 głosów
431 wizyt
pytanie zadane 19 października 2019 w JavaScript przez devloop Nowicjusz (190 p.)
zmienione kategorie 20 października 2019 przez ScriptyChris

Witam

Szukam rozwiązania w js aby móc sprawdzić czy dany element został wyświetlony, używałem funkcji onload ale ona po pierwsze nie sprawdza takich tagów jak <div>, <p>, <span> po drugie tylko dostaje dane, że został element pobrany lub wczytany co nie oznacza, że faktycznie został pokazany

problem polega na tym, że przy dużej ilości danych często element zostaje pobrany i wczytany ale nie pokazuje się od razu na ekranie tylko z opóźnieniem i nie wiem jak mógłbym sprawdzić czy faktycznie został zrenderowany przez przeglądarkę

Wcześniej już zadałem podobne pytanie ale źle je sformowałem, bo chodziło mi o zrendowanie przez przeglądarkę Pytanie

1
komentarz 20 października 2019 przez rafal.budzis Szeryf (85,260 p.)
Pokaż kod może coś podpowiem odnośnie przyśpieszenia. Jeśli nie możesz pokazać to w F11  masz zakładkę wydajność. Możesz sprawdzić ile czasu zajmuje renderowanie a ile wykonywanie JavaScript. Być może szukasz problemu tam gdzie go nie ma ;)

2 odpowiedzi

0 głosów
odpowiedź 20 października 2019 przez adrian17 Ekspert (344,860 p.)
edycja 20 października 2019 przez adrian17

czy faktycznie został zrenderowany przez przeglądarkę

Prędzej czy później będzie, albo przeglądarka się wywali :P Zgaduję że masz na myśli: chcesz coś zrobić JSem, po tym, jak renderowanie się zakończy?

StackOverflow mówi że nie można: https://stackoverflow.com/a/21043017/2468469

Ode mnie, poza tym niepewnym setTimeout()em, możesz jeszcze spróbować użyć `getComputedStyle()`, `.offset___` lub podobnych getterów, co przynajmniej wymusi synchroniczny reflow i zagwarantuje że w tym miejscu skryptu element już wie gdzie jest, ale AFAIK wciąż nie gwarantuje że nowa klatka z tym elementem została już wyrenderowana i wyświetlona.

Natomiast najlepiej spróbować uniknąć takiej sytuacji :P Jeśli to "opóźnienie" jest widocznie zauważalne, to musisz dodawać jakąś strasznie dużą liczbę elementów - one w ogóle mieszczą się na ekranie? Może da się dodać tylko część, leniwie?

0 głosów
odpowiedź 20 października 2019 przez BT101 Stary wyjadacz (12,540 p.)

element...nie pokazuje się od razu na ekranie tylko z opóźnieniem i nie wiem jak mógłbym sprawdzić czy faktycznie został zrenderowany przez przeglądarkę

Raczej nie możesz sprawdzić bezpośrednio czy przeglądarka wyrenderowała coś tam ale jeśli ładujesz to do jakiegoś diva to możesz np sprawdzić jego wysokość i na tej podstawie ustalić czy się wyrenderowało.. Chociaż jak ładujesz tak mega dużą ilość elementów, że przeglądarka laguje się w momencie wyświetlania tego to równie dobrze ten skrypt może się ściąć.. ciężko przewidzieć.

Twój prawdziwy problem to raczej, że wyświetlasz na raz tak dużą ilość elementów, że przeglądarka nie ogarnia ^^

Podobne pytania

0 głosów
1 odpowiedź 295 wizyt
pytanie zadane 18 października 2019 w Sieci komputerowe, internet przez devloop Nowicjusz (190 p.)
+1 głos
3 odpowiedzi 117 wizyt
pytanie zadane 22 czerwca 2021 w JavaScript przez ITshnyk Obywatel (1,800 p.)
0 głosów
2 odpowiedzi 1,447 wizyt
pytanie zadane 15 września 2018 w JavaScript przez BetBet Użytkownik (550 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,965 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...