Традиционно JS предназначался для коротких, быстро выполняющихся фрагментов кода. Если у вас были серьезные вычисления, вы делали это на сервере - идея JS + HTML app , которая долгое время работала в вашем браузере и выполняла нетривиальные задачи, была абсурдной.
Конечно, теперь у нас это есть. Но браузерам понадобится немало времени, чтобы наверстать упущенное - большинство из них было разработано на основе однопоточной модели, и изменить это непросто. Google Gears обходит многие потенциальные проблемы, требуя изолированного фонового выполнения - не нужно менять DOM (так как это не поточно-ориентировано), нет доступа к объектам, созданным основным потоком (так же). Несмотря на ограниченность, это, вероятно, будет наиболее практичным проектом в ближайшем будущем, поскольку он упрощает дизайн браузера и снижает риск, связанный с тем, что неопытные JS-кодеры могут связываться с потоками ...
@ Марсио :
Почему по этой причине не реализована многопоточность в Javascript? Программисты могут делать с инструментами все, что им захочется.
Итак, давайте не будем давать им инструменты, которые настолько просто неправильно использовать , что любой другой веб-сайт, который я открываю, заканчивает тем, что ломает мой браузер. Наивная реализация этого привела бы вас прямо на территорию, которая вызывала много головных болей у MS во время разработки IE7: авторы дополнений быстро и свободно играли с моделью потоков, что приводило к скрытым ошибкам, которые становились очевидными, когда жизненные циклы объектов менялись в основном потоке , ПЛОХОЙ. Если вы пишете многопоточные дополнения ActiveX для IE, я думаю, это идет с территорией; не значит, что нужно идти дальше.