Действительно ли многопоточность JavaScript возможна в IE6?
Есть ли какие-либо сторонние библиотеки для этого?
JavaScript не поддерживает встроенную многопоточность в текущих веб-браузерах. Даже если бы это было так, я уверен, что IE 6 не поддерживал бы это :)
Запуск ваших скриптов в нескольких iframe может быть одним из обходных путей, как Джейсон Кестер предложил в другом ответе .
Кроме того, для современных браузеров вам может быть интересно проверить Web Workers , но это определенно что-то из лиги IE 6:
Запускайте задачи в IFrames
Предполагая, что вы говорите о многозадачности на стороне клиента, вы можете открыть n фреймов на своей странице, каждый из которых указывает на страницу в вашем домене.
Есть много способов спроектировать это оттуда. Вероятно, самым простым было бы иметь один файл .js, который вы запускаете из каждого кадра. Он звонит домой в parent.readyToGo () или что-то еще и получает задание. Рабочие методы могут вызывать что-то вроде parent.taskFinished (), чтобы сообщить, когда они закончили.
Самое главное, не слушайте никого, говорящего вам не запускать критически важное многопоточное приложение javascript в IE6.Я уверен, что у вас есть веские причины :)
Нет - точно не в IE6. Вы можете подделать это, используя множество window.setTimeout ()
s.
Ну, в HTML5 появляются Web-Workers. Но я очень сомневаюсь, что существует библиотека, которая создает обертку для использования ее в IE6.
Если вы просто хотите писать синхронный код и таким образом избежать необходимости писать обработчики событий повсюду, вы можете попробовать: Strands
Google Gears - это плагин, который работает с IE6 и включает в себя нечто под названием WorkerPools. Похоже, что Google Gears уже не очень активно разрабатывается, потому что большинство идей Gears пытались перенести в HTML5. WorkerPools - это, по сути, фоновые процессы, которые не делятся состоянием и общаются только через сообщения. В HTML5 это превратилось в WebWorkers. Более подробную информацию вы можете найти здесь: http://code.google.com/apis/gears/api_workerpool.html