Autor | Zpráva | ||
---|---|---|---|
Reyna Profil * |
#1 · Zasláno: 8. 12. 2010, 18:26:48
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 |
#2 · Zasláno: 9. 12. 2010, 17:05:01
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 |
#3 · Zasláno: 9. 12. 2010, 17:56:51 · Upravil/a: Chamurappi
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? |
||
Časová prodleva: 13 let
|
0