Autor Zpráva
Reyna
Profil *
Dobrý den, chtěl bych se zeptat, jak se vlastně provádí kód na straně klienta, například kód JS. Když se zobrazí nějaká stránka s JS skriptem, která požádá například o údaj rozlišení obrazovky, co na to prohlížeč(IE,FF..)? Šáhne do nějaké své databáze pro daný údaj, který se získává vždy s příslušnou změnou systémového nastavení PC nebo dojde v reálném čase k tomu, že prohlížeč zjistí potřebnou informaci voláním nějaké své funkce, kterou následně ještě "za tepla předá JS"?
janbarasek
Profil
Všeobecně platí, že javascript zjišťuje informace ihned, a pak je hned vykreslí na stránce. To získávání informací trvá zlomek vteřiny, takže ti ani nepříde, že se něco získávalo. O všechno se tedy stará prohlížeč, který má dostatečné pravomoce, koukat se do systému a sledovat nastavení.
Chamurappi
Profil
Reaguji na Reynu:
Šáhne do nějaké své databáze pro daný údaj, […] nebo dojde v reálném čase k tomu, že prohlížeč zjistí potřebnou informaci […]?
Optimální odpověď na tuhle otázku je „Ano“ :-)

Operační systém oznamuje všem aplikacím, že se změnilo rozlišení (Windows posílá zprávu WM_DISPLAYCHANGE), takže prohlížeč si v tu chvíli nejspíš poznamená šířku a výšku a zprostředkuje dané informace skrz rozhraní skriptům. Zjišťování screen.availWidth a screen.availHeight asi bude fungovat jinak, protože na změnu pozice panelů nejspíš žádná systémová událost není (alespoň ve Windowsu ne). Různé prohlížeče můžou postupovat různě.
Objekt screen bohužel nepočítá s více monitory, takže to, co prohlížeč vrátí, může u některých prohlížečů záležet i na umístění okna… a jiné prohlížeče tvrdošíjně vracejí informace jen o prvním monitoru.

Naštěstí není obvyklé, že by uživatelé během brouzdání měnili rozlišení.

Pokud ta otázka byla myšlena obecně, pak platí, že část vlastností v objektovém modelu prohlížeče je „živá“ a čtení z nich vyvolává nějakou složitější akci než pouhé hrábnutí do paměti, a část je obyčejně statická.


Reaguji na janbaraska:
Všeobecně platí, že javascript zjišťuje informace ihned, a pak je hned vykreslí na stránce.
Ne. Na to jsi přišel jak? A proč by je měl hned vykreslit?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: