{"id":14856,"date":"2026-10-26T18:25:00","date_gmt":"2026-10-26T17:25:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=14856"},"modified":"2026-10-26T13:09:08","modified_gmt":"2026-10-26T12:09:08","slug":"klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/","title":{"rendered":"Klasyczne skrypty i DOM: wyszukiwanie element\u00f3w we w\u0142a\u015bciwym momencie"},"content":{"rendered":"<p>Parser HTML odczytuje kod strony i buduje struktur\u0119 jej element\u00f3w. <strong>Klasyczny skrypt przetwarzany przez parser HTML, bez <code>async<\/code> i skutecznego <code>defer<\/code><\/strong>, zatrzymuje dalsze parsowanie HTML na czas wykonania. Elementy zapisane dalej w \u017ar\u00f3dle zwykle jeszcze nie istniej\u0105 w drzewie dokumentu (DOM). Modu\u0142y, skrypty asynchroniczne i skrypty dodawane dynamicznie dzia\u0142aj\u0105 wed\u0142ug innych regu\u0142.<\/p>\n<p>To wyja\u015bnia typowy b\u0142\u0105d zmiany motywu: prze\u0142\u0105cznik w nag\u0142\u00f3wku dzia\u0142a, ale przy pierwszym \u0142adowaniu nie znajduje obraz\u00f3w w dalszej cz\u0119\u015bci artyku\u0142u. Wszystkie pliki obraz\u00f3w mog\u0105 ju\u017c istnie\u0107; wyszukiwanie nast\u0119puje po prostu zbyt wcze\u015bnie.<\/p>\n<figure class=\"lw-diagram\"><img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/quality-14856-20261024.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"Izolowany test: zero figur podczas parsowania, dwie po parsowaniu i jedna zaplanowana zamiana\"><figcaption>Test z 24 pa\u017adziernika 2026 w Chromium: dwie figury po skrypcie w head. Wyniki dotycz\u0105 tego przyk\u0142adu, a nie historycznych ods\u0142on.<\/figcaption><\/figure>\n<h2>Pozycja w \u017ar\u00f3dle nie jest pomiarem wykonania<\/h2>\n<p>Pozycja bajtowa opisuje kolejno\u015b\u0107 w dostarczonym HTML. Zliczenie znacznik\u00f3w otwieraj\u0105cych nie daje automatycznie liczby istniej\u0105cych element\u00f3w DOM: znaczenie maj\u0105 komentarze, tre\u015b\u0107 skrypt\u00f3w, elementy tworzone niejawnie oraz p\u00f3\u017aniejsze zmiany. Wcze\u015bniejsze skrypty mog\u0105 te\u017c doda\u0107 kolejne elementy.<\/p>\n<p>Mi\u0119dzy innymi dlatego w\u0142a\u015bciwy test zapisuje <code>document.readyState<\/code> i rzeczywist\u0105 liczb\u0119 znalezionych element\u00f3w w chwili wykonania. Wcze\u015bniejsze rozmiary strony i liczby plik\u00f3w nie s\u0105 tutaj przedstawiane jako odtworzone pomiary. Mechanizm pokazuje niewielki, izolowany przyk\u0142ad uruchomiony w przegl\u0105darce.<\/p>\n<h2>Co wykaza\u0142 test przegl\u0105darkowy<\/h2>\n<p>W te\u015bcie z 24 pa\u017adziernika 2026 dwa elementy <code>figure<\/code> wyst\u0119puj\u0105 po klasycznym skrypcie w sekcji head. Wczesne wyszukiwanie znajduje zero figur. Zewn\u0119trzny skrypt klasyczny z <code>defer<\/code> oraz zwyk\u0142y modu\u0142 znajduj\u0105 p\u00f3\u017aniej obie figury. Dodanie <code>defer<\/code> do osadzonego skryptu klasycznego nie op\u00f3\u017ania wykonania.<\/p>\n<p><code>querySelectorAll()<\/code> zwraca ponadto statyczn\u0105 list\u0119. Pusta lista zachowana wcze\u015bniej pozostaje pusta tak\u017ce po utworzeniu obu figur. Po parsowaniu potrzebne jest wi\u0119c ponowne wyszukanie element\u00f3w. Sprawdzono izolowany przyk\u0142ad w Chromium, a nie zestaw r\u00f3\u017cnych przegl\u0105darek ani historyczny zapis ruchu sieciowego witryny.<\/p>\n<h2>Dlaczego p\u00f3\u017aniejsze klikni\u0119cie nie wystarcza<\/h2>\n<p>Klikni\u0119cie po parsowaniu sprawdza zmian\u0119 stanu przy ju\u017c istniej\u0105cych elementach. Nie potwierdza poprawnego dzia\u0142ania podczas pierwszego \u0142adowania. Klikni\u0119cie mo\u017ce te\u017c nast\u0105pi\u0107 jeszcze w trakcie \u0142adowania, gdy przycisk jest ju\u017c widoczny i ma zarejestrowan\u0105 obs\u0142ug\u0119 zdarzenia.<\/p>\n<p>Zapisany wyb\u00f3r jasnego motywu, ponowne \u0142adowanie w ciemnym motywie i prze\u0142\u0105czenie podczas \u0142adowania stanowi\u0105 zatem osobne przypadki testowe. Przy ka\u017cdej zamianie obraz\u00f3w liczy si\u0119 bie\u017c\u0105cy stan motywu. Istnienie element\u00f3w nag\u0142\u00f3wka nie dowodzi, \u017ce figury w dalszej cz\u0119\u015bci artyku\u0142u ju\u017c powsta\u0142y.<\/p>\n<h2>Zamiana obraz\u00f3w po parsowaniu<\/h2>\n<p>Poni\u017cszy przyk\u0142ad integracji wymaga istniej\u0105cej funkcji <code>bilderJetztTauschen(hell)<\/code>. Funkcja musi przy ka\u017cdym wywo\u0142aniu ponownie wyszuka\u0107 aktualne obrazy i ustawi\u0107 odpowiednie adresy. Fragment okre\u015bla wy\u0142\u0105cznie moment wykonania.<\/p>\n<pre><code>const wurzel = document.documentElement;\nlet bildtauschGeplant = false;\n\nfunction bilderTauschen(hell) {\n    if (document.readyState === &#x27;loading&#x27;) {\n        if (bildtauschGeplant) return;\n        bildtauschGeplant = true;\n        document.addEventListener(&#x27;DOMContentLoaded&#x27;, function () {\n            bildtauschGeplant = false;\n            bilderJetztTauschen(wurzel.getAttribute(&#x27;data-theme&#x27;) === &#x27;light&#x27;);\n        }, { once: true });\n        return;\n    }\n    bilderJetztTauschen(hell);\n}<\/code><\/pre>\n<p>Gdy <code>readyState<\/code> ma warto\u015b\u0107 <code>loading<\/code>, rejestrowany jest najwy\u017cej jeden nas\u0142uch zdarzenia. Po wyst\u0105pieniu zdarzenia bie\u017c\u0105cy wyb\u00f3r jest odczytywany z <code>data-theme<\/code>. Po parsowaniu zamiana nast\u0119puje natychmiast z przekazan\u0105 warto\u015bci\u0105. Wyb\u00f3r w elemencie g\u0142\u00f3wnym musi zosta\u0107 zaktualizowany przed wywo\u0142aniem funkcji.<\/p>\n<p>W izolowanym te\u015bcie trzy wczesne wywo\u0142ania spowodowa\u0142y dok\u0142adnie jedn\u0105 p\u00f3\u017aniejsz\u0105 zamian\u0119 z ostatnio ustawionym jasnym motywem. Nast\u0119pne wywo\u0142anie z ciemnym motywem zadzia\u0142a\u0142o natychmiast. Jest to ulepszony przyk\u0142ad; kontrola artyku\u0142u nie zmieni\u0142a produkcyjnego motywu.<\/p>\n<div class=\"lw-faq\">\n<h2>Pytania i odpowiedzi<\/h2>\n<h3>Kiedy pomagaj\u0105 defer i modu\u0142y?<\/h3>\n<p>Dla zewn\u0119trznych skrypt\u00f3w klasycznych <code>defer<\/code> przesuwa wykonanie po parsowaniu HTML i zachowuje kolejno\u015b\u0107 dokumentu. Zwyk\u0142e modu\u0142y r\u00f3wnie\u017c wykonuj\u0105 si\u0119 po parsowaniu. <code>async<\/code> nie daje takiej gwarancji; wykonanie zale\u017cy od dost\u0119pno\u015bci skryptu. Przy modu\u0142ach <code>async<\/code> mo\u017ce mie\u0107 znaczenie tak\u017ce bez w\u0142asnego <code>src<\/code>. Dla osadzonych skrypt\u00f3w klasycznych <code>defer<\/code> i <code>async<\/code> pozostaj\u0105 bezskuteczne.<\/p>\n<h3>Dlaczego DOMContentLoaded zamiast load?<\/h3>\n<p><code>DOMContentLoaded<\/code> nast\u0119puje po parsowaniu HTML i powi\u0105zanych skryptach odroczonych. Zdarzenie nie czeka na wszystkie obrazy ani skrypty asynchroniczne; arkusze styl\u00f3w mog\u0105 op\u00f3\u017ania\u0107 wykonanie po\u015brednio przez oczekuj\u0105ce skrypty. <code>load<\/code> czeka na dodatkowe zasoby strony, ale pomija obrazy \u0142adowane leniwie. Dla potrzebnych font\u00f3w w\u0142a\u015bciwym punktem kontroli jest <code>document.fonts.ready<\/code>. Do znalezienia figur wystarcza zbudowane drzewo dokumentu.<\/p>\n<h3>Czy zamiana zapobiega podw\u00f3jnemu pobieraniu obraz\u00f3w?<\/h3>\n<p>Nie. Mechanizm wst\u0119pnego pobierania lub \u0142adowania obraz\u00f3w m\u00f3g\u0142 ju\u017c wys\u0142a\u0107 \u017c\u0105danie pierwotnego adresu. Rzeczywisty koszt zale\u017cy od pami\u0119ci podr\u0119cznej, odleg\u0142o\u015bci od widocznego obszaru, po\u0142\u0105czenia i przegl\u0105darki; <code>loading=\"lazy\"<\/code> nie gwarantuje unikni\u0119cia \u017c\u0105dania. Lepszym dowodem jest zapis ruchu sieciowego, a nie pozycja skryptu.<\/p>\n<p><code>&lt;picture&gt;<\/code> z <code>prefers-color-scheme<\/code> mo\u017ce uwzgl\u0119dni\u0107 preferencj\u0119 systemow\u0105. Wyb\u00f3r przechowywany wy\u0142\u0105cznie w <code>localStorage<\/code> nie jest dost\u0119pny dla zapyta\u0144 medialnych CSS ani automatycznie znany serwerowi. Wyb\u00f3r po stronie serwera wymaga osobnego przekazania stanu.<\/p>\n<h3>Co z artyku\u0142ami dodanymi p\u00f3\u017aniej?<\/h3>\n<p><code>DOMContentLoaded<\/code> nie wyst\u0119puje ponownie dla tego samego dokumentu. Zmiana tre\u015bci bez pe\u0142nej nawigacji wymaga osobnego wywo\u0142ania po wstawieniu element\u00f3w. W te\u015bcie dodanie p\u00f3\u017aniej trzeciej figury nie uruchomi\u0142o automatycznie kolejnej zamiany.<\/p>\n<\/div>\n<div class=\"lw-quellen\">\n<h2>\u0179r\u00f3d\u0142a<\/h2>\n<ul>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTML\/Reference\/Elements\/script\" target=\"_blank\" rel=\"noopener noreferrer\">MDN: element script<\/a><\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document\/DOMContentLoaded_event\" target=\"_blank\" rel=\"noopener noreferrer\">MDN: DOMContentLoaded<\/a><\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Window\/load_event\" target=\"_blank\" rel=\"noopener noreferrer\">MDN: zdarzenie load<\/a><\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/Document\/querySelectorAll\" target=\"_blank\" rel=\"noopener noreferrer\">MDN: querySelectorAll<\/a><\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/API\/FontFaceSet\/ready\" target=\"_blank\" rel=\"noopener noreferrer\">MDN: FontFaceSet.ready<\/a><\/li>\n<li><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/HTML\/Reference\/Elements\/img\" target=\"_blank\" rel=\"noopener noreferrer\">MDN: img i op\u00f3\u017anione \u0142adowanie<\/a><\/li>\n<li><a href=\"https:\/\/html.spec.whatwg.org\/multipage\/scripting.html#the-script-element\" target=\"_blank\" rel=\"noopener noreferrer\">WHATWG: przetwarzanie skrypt\u00f3w<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Klasyczne skrypty mog\u0105 przeszukiwa\u0107 dokument przed utworzeniem obraz\u00f3w artyku\u0142u. Izolowany test wyja\u015bnia defer, modu\u0142y, statyczne listy wynik\u00f3w i jedn\u0105 zaplanowan\u0105 zamian\u0119 obraz\u00f3w po parsowaniu.<\/p>\n","protected":false},"author":1,"featured_media":24211,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[152],"tags":[92271,92283,92286],"class_list":["post-14856","post","type-post","status-publish","format-standard","hentry","category-tworzenie-stron-internetowych","tag-javascript-pl","tag-web-performance-pl","tag-wordpress-pl"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Klasyczne skrypty i DOM: wyszukiwanie element\u00f3w we w\u0142a\u015bciwym momencie | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Skrypt motywu mia\u0142 podmienia\u0107 obrazy na jasne i przy \u0142adowaniu nie znajdowa\u0142 nic. Zmierzone bajt po bajcie: sta\u0142 na 42,4 procentach dokumentu, a wszystko szukane przychodzi\u0142o p\u00f3\u017aniej.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Klasyczne skrypty i DOM: wyszukiwanie element\u00f3w we w\u0142a\u015bciwym momencie | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Skrypt motywu mia\u0142 podmienia\u0107 obrazy na jasne i przy \u0142adowaniu nie znajdowa\u0142 nic. Zmierzone bajt po bajcie: sta\u0142 na 42,4 procentach dokumentu, a wszystko szukane przychodzi\u0142o p\u00f3\u017aniej.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-26T17:25:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/quality-hero-14856-20261024.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Klasyczne skrypty i DOM: wyszukiwanie element\u00f3w we w\u0142a\u015bciwym momencie\",\"datePublished\":\"2026-10-26T17:25:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\\\/\"},\"wordCount\":839,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/quality-hero-14856-20261024.png\",\"keywords\":[\"JavaScript\",\"Web Performance\",\"WordPress\"],\"articleSection\":[\"Tworzenie stron internetowych\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\\\/\",\"name\":\"Klasyczne skrypty i DOM: wyszukiwanie element\u00f3w we w\u0142a\u015bciwym momencie | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/quality-hero-14856-20261024.png\",\"datePublished\":\"2026-10-26T17:25:00+00:00\",\"description\":\"Skrypt motywu mia\u0142 podmienia\u0107 obrazy na jasne i przy \u0142adowaniu nie znajdowa\u0142 nic. Zmierzone bajt po bajcie: sta\u0142 na 42,4 procentach dokumentu, a wszystko szukane przychodzi\u0142o p\u00f3\u017aniej.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/quality-hero-14856-20261024.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/quality-hero-14856-20261024.png\",\"width\":1200,\"height\":630,\"caption\":\"Klasyczne skrypty i DOM: wyszukiwanie element\u00f3w we w\u0142a\u015bciwym momencie\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/pl\\\/tworzenie-stron-internetowych\\\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Klasyczne skrypty i DOM: wyszukiwanie element\u00f3w we w\u0142a\u015bciwym momencie\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Klasyczne skrypty i DOM: wyszukiwanie element\u00f3w we w\u0142a\u015bciwym momencie | Lukas Wojcik","description":"Skrypt motywu mia\u0142 podmienia\u0107 obrazy na jasne i przy \u0142adowaniu nie znajdowa\u0142 nic. Zmierzone bajt po bajcie: sta\u0142 na 42,4 procentach dokumentu, a wszystko szukane przychodzi\u0142o p\u00f3\u017aniej.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/","og_locale":"en_US","og_type":"article","og_title":"Klasyczne skrypty i DOM: wyszukiwanie element\u00f3w we w\u0142a\u015bciwym momencie | Lukas Wojcik","og_description":"Skrypt motywu mia\u0142 podmienia\u0107 obrazy na jasne i przy \u0142adowaniu nie znajdowa\u0142 nic. Zmierzone bajt po bajcie: sta\u0142 na 42,4 procentach dokumentu, a wszystko szukane przychodzi\u0142o p\u00f3\u017aniej.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-10-26T17:25:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/quality-hero-14856-20261024.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Klasyczne skrypty i DOM: wyszukiwanie element\u00f3w we w\u0142a\u015bciwym momencie","datePublished":"2026-10-26T17:25:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/"},"wordCount":839,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/quality-hero-14856-20261024.png","keywords":["JavaScript","Web Performance","WordPress"],"articleSection":["Tworzenie stron internetowych"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/","url":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/","name":"Klasyczne skrypty i DOM: wyszukiwanie element\u00f3w we w\u0142a\u015bciwym momencie | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/quality-hero-14856-20261024.png","datePublished":"2026-10-26T17:25:00+00:00","description":"Skrypt motywu mia\u0142 podmienia\u0107 obrazy na jasne i przy \u0142adowaniu nie znajdowa\u0142 nic. Zmierzone bajt po bajcie: sta\u0142 na 42,4 procentach dokumentu, a wszystko szukane przychodzi\u0142o p\u00f3\u017aniej.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/quality-hero-14856-20261024.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/10\/quality-hero-14856-20261024.png","width":1200,"height":630,"caption":"Klasyczne skrypty i DOM: wyszukiwanie element\u00f3w we w\u0142a\u015bciwym momencie"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/pl\/tworzenie-stron-internetowych\/klasyczne-skrypty-i-dom-wyszukiwanie-elementow-we-wlasciwym-momencie\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Klasyczne skrypty i DOM: wyszukiwanie element\u00f3w we w\u0142a\u015bciwym momencie"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/14856","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=14856"}],"version-history":[{"count":7,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/14856\/revisions"}],"predecessor-version":[{"id":27197,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/14856\/revisions\/27197"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/24211"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=14856"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=14856"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=14856"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}