2013-09-12 2 views
0

Я использую карту google через карты Google api v3. Мне нужно добавить наложение для каждого элемента меню. Каждый раз, элемент нажимается, загружается новый накладной/тепловой карты. Это работает, но загрузка маркеров/точек нагрева замерзает пользовательский интерфейс.Сохранять пользовательский интерфейс при запуске скрипта

Есть ли возможность предотвратить это, как обновление в фоновом режиме? Я знаю, что JavaScript действительно не поддерживает потоки, но знаете ли вы какие-то хаки?

+0

Хорошо, но я даже не могу добавить loader-gif, потому что пользовательский интерфейс не обновляется в любой момент времени изменения. Может, это взломать? – michaeln

+0

Да, добавьте gif и вызовите остальную часть кода с помощью setTimeout (.., 0). Это очищает текущий стек вызовов, позволяет браузеру делать какой-либо рендеринг, а затем вызывает все, что вы передали в setTimeout. (Гиф по-прежнему не оживляет, если ваш код заставляет браузер работать) – hagbard

ответ

1

Вы можете попробовать исследовать WebWorkers.

Или вы можете разделить работу на отдельные куски и вызывать каждый кусок после следующего, используя SetTimeout с таймаутом 0.

setTimeout(function() { executeNextChunk(); }, 0) 

Это дает время браузера, чтобы сделать другие вещи в между сеансами.

Смежные вопросы