Javascript nie ma widocznych tematów (jeszcze - nadchodzą wątki pracownicze, zobacz więcej informacji w JavaScript and Threads).Jak działa "wiele scen wykonawczych" Javascriptu?
Jednak wydaje się, że ma wiele kontekstów wykonawczych, które wydają się istnieć jednocześnie - niezależnie, gdy masz wiele okien Firefox i wiele kart Firefox/IE.
Jeśli na stronie znajduje się wiele elementów iframe, każdy ma swój własny kontekst wykonania, ale ma udostępnione dane. Jeśli dwa elementy iframe znajdują się w tej samej domenie, mogą uzyskiwać dostęp do swoich struktur DOM i nawiązywać połączenia między sobą. Mimo to nie mogłem znaleźć w Google opisu modelu planowania, tj. Czy jest:
- równoległy/wyprzedzający, w takim przypadku - czy można czasowo zawiesić? jakiejkolwiek formy wzajemnego wykluczenia?
- spółdzielnia, w takim przypadku - w jaki sposób dochodzi się do innego kontekstu?
- Brak nakładania się - tzn. Procedura obsługi zdarzeń w głównej ramce musi zostać zwrócona, zanim można wywołać procedurę obsługi zdarzeń w elemencie iframe (i na odwrót)?
Więc pytanie brzmi:
- Czy istnieje zagwarantowane kontekst modelu przełączanie?
- Jeśli nie, jakie są dominujące modele przełączania kontekstów?
- Wygląda na to, że Firefox i IE mają nie nakładający się harmonogram między kontekstami z tej samej karty i współpracują między różnymi kartami/oknami w tym samym procesie - ale nie jestem pewien.
- Chrome używa systemowego harmonogramu dla różnych kart (może używać wielu rdzeni, które należą do grupy równoległej/prewencyjnej, ale nie wiem, czego używa do wielu ramek na tej samej karcie.)
- Nie mam pojęcia o Safari czy Opera.
Dzięki!
(Wiesz o tym, ale dla kompletności: to Firefox 3.5. Ponieważ przeglądarki stają się wieloprocesowe, ponieważ Chrome już istnieje, a Firefox będzie kilka wersji później, niepowiązane zakładki prawdopodobnie będą działać niezależnie, podczas gdy (przynajmniej na razie) dla "pokrewnych" "zakładki, które programiści przeglądarki próbują zachować semantykę" run to completion ".) – Nickolay
Oczywiście, ale Firefox jeszcze tego nie robi, i przynajmniej do Firefox 4.0;) – sdwilsh
Oddzielne zakładki są na osobnych procesach, żadnych problemów tam. Elementy iframe/frames na jednej karcie nadal udostępniają ten sam wątek. Programiści Js mogą nadal swobodnie oddychać i nie martwić się o współbieżność. –