У меня есть некоторые операции (в основном создание новых папок и ссылок), которые могут занять несколько минут. Теперь проблема в том, что в это время хром каким-то образом блокируется, так что я едва могу использовать браузер (в «режиме проверки всплывающих окон»), что плохо. Кроме того, мой gif-спиннер не крутится. ^^

Кроме того, операция прерывается, если я нажимаю на другую вкладку или около того (которая закрывает расширение) в обычном режиме, что тоже плохо.

У кого-нибудь есть идеи, как справиться с этими случаями?

2
drakon 17 Дек 2011 в 23:03

1 ответ

Вы будете выполнять длительные задачи на фоновой странице. Чтобы уведомить фоновую страницу из всплывающего окна о запуске задачи, вы можете использовать передачу сообщений. Поскольку фоновая страница всегда открыта, она не перестанет работать, когда вы уйдете от всплывающего окна.

2
Håvard 17 Дек 2011 в 23:08
Я не был уверен, что фоновые страницы решают проблему с циклом занятости, но в таком случае я попробую.
 – 
drakon
17 Дек 2011 в 23:34
Кажется, это работает, но почему-то, если я сейчас вызову chrome.bookmarks.getTree из background_page.html, функция не вернется. Я не мог найти никаких намеков на то, что у вас нет доступа к закладкам из фона ... есть идеи, почему это не работает?
 – 
drakon
18 Дек 2011 в 06:12
Если вы не предоставите код, будет трудно сказать, что не так. Вы уверены, что код фоновой страницы вообще работает и что проблема не в передаче сообщений?
 – 
Håvard
18 Дек 2011 в 06:19
Да, я попробовал и получил ответ прямо перед вызовом функции закладок. ... (1) chrome.bookmarks.getTree(function(nodes) {... (2) (1) достигнуто, но (2) больше нет. Если я вызываю этот код не из background_page, он работает, как и ожидалось.
 – 
drakon
19 Дек 2011 в 01:40
Начиная с манифеста v3 длительные процессы больше не разрешены дольше 5 минут.
 – 
rump roast
24 Авг 2021 в 19:23