Autor | Zpráva | ||
---|---|---|---|
sakalik Profil * |
#1 · Zasláno: 5. 4. 2007, 15:49:28
je javascript thread safe - mam globalnu premenu a pristupujem k nej v dvoch funkciach kt. su vyvolane udalostou
napr
a ide o to ci sa moze stat ze bude zavolana f1 a potom f2 (udalostami) a v f2 sa mi objavy g==1 - vcelku ide o to ci javascript je v jednom vlakne alebo vo viacerych -pls nech odpoved pouzivaj g1 a g2 alebo na co ti to je atd |
||
sakalik Profil * |
#2 · Zasláno: 5. 4. 2007, 15:51:01
sorry za posled. riadok
-pls nechcem odpoved - pouzivaj g1 a g2 alebo na co ti to je, atd |
||
ah01 Profil |
#3 · Zasláno: 5. 4. 2007, 17:39:50
Veškerý JS kód v prohlížeči běží v jednom vlákně. Takže ano, je thread safe.
|
||
Časová prodleva: 25 dní
|
|||
v6ak Profil |
#4 · Zasláno: 30. 4. 2007, 14:35:48
Pokud by běžel v jednom vlákně, nebylo by možné setTimeout(....);, ne?
|
||
ah01 Profil |
#5 · Zasláno: 30. 4. 2007, 14:45:04
„Pokud by běžel v jednom vlákně, nebylo by možné setTimeout(....);, ne?“
nebo „Pokud by běžel v jednom vlákně, nebylo by možné události, ne?“ Jde o to, že událost zajišťuje prohlížeč a ten pak volá obsluhu v JS, pokud ale JS engine něco v tu chvíli dělá, čeká prohlížeč, až to dodělá. Já netvrdím, že celý prohlížeč běží v jednom vlákně, ale že JS engine je jen jedno vlákno. To jak k němu přistupuje prohlížeč, je jiná věc. A IMHO FF a Opera to dělá nejspíš nepatrně jinak (viz tvůj druhý dotaz) |
||
v6ak Profil |
#6 · Zasláno: 30. 4. 2007, 14:48:37 · Upravil/a: v6ak
ah01
Jde o to, že událost zajišťuje prohlížeč a ten pak volá obsluhu v JS, pokud ale JS engine něco v tu chvíli dělá, čeká prohlížeč, až to dodělá. Aha, tak to je fajn. A IMHO FF a Opera to dělá nejspíš nepatrně jinak (viz tvůj druhý dotaz) Proč, Opera počkala a potom to provedla (oprava), FF (a IE) se na druhé stisknutí vykašlal úplně, takže z toho bych toto neusuzoval. |
||
ah01 Profil |
#7 · Zasláno: 30. 4. 2007, 15:02:06
v6ak
Jestli to chápu dobře, tak Opera během toho čekání dovolí uživateli dál pracovat se stránku (události sype asi do nějaké fronty), kdežto FF a IE „zamrznou“. Nikdy jsem s tímhle moc nelaboroval, jen vím, že Opera se v některých věcech chová jinak než všichni ostatní, je ale otázka jestli lépe nebo hůře. |
||
v6ak Profil |
#8 · Zasláno: 30. 4. 2007, 16:56:40
ah01
Jasně, nějak tak to taky vidím, ale třeba u timeoutu to podle mě budou do fronty sypat všichni. U kliku může být lepší to ignorovat kvůli nedočkavým uživatelům, kteří kliknou několikrát a potom se diví, až se "vysype" fronta... |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0