Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Останавливается выполнение javascript в chrome (https://javascript.ru/forum/events/79377-ostanavlivaetsya-vypolnenie-javascript-v-chrome.html)

Signal 29.01.2020 23:20

Останавливается выполнение javascript в chrome
 
Пишу расширение, сталкивался уже с таким явлением, если вкладка хрома не активна, никаких действий не происходит.

из расширения одной вкладке посылаю сообщение через background в другое окно

let Req= {action:'SendMessageToTabsID', tabid:idTab, CMD:'ну ту разная фигня', data:{тут тоже}, func:''};
	    chrome.extension.sendMessage(Req);



в background
тра ля-ля
    chrome.tabs.sendMessage(request['tabid'], data:requst, function(response) {
    
  });


action:'SendMessageToTabsID' принимает в backgroundе и отправляет на нужный tabid

принимаю, в другой вкладке

приемник от background
chrome.runtime.onMessage.addListener(function(request, sender, callback) {
    if (request['action']=='SendMessageToTabsID') {
    }
})


если в приемнике, вкладка не активна, то прием там осуществляется (делаю проверку звуком и иногда через NN время вледующие запросы так же обрабатываются, по крайней мере на прием, ну и иногда приходит ответ от этой табы к табе, которая отправила запрос но дальше ничего не происходит, пока не сделаешь руками или программно табу активной)
только на одном сайте это происходит, остальные в фоне работают нормально.
как можно пролечить это дело, как-то раз такое тоже было, но я не заморачивался особо программно ее сделать на пол секунды активной, все отработает вернет и можно было скрыть ее, а вот сейчас запросов много к ней должно идти и делать ее принудительно активной вообще не вариант. В developer.chrome про остановку выполнения кода ничего не нашел, хотя вроде там как-бы есть такое, может в настройках флагов chromа можно запретить остановку его работы (расширение для хрома все равно для индивидуального пользования) может я плохо искал, прошу помощи братья!


Часовой пояс GMT +3, время: 19:35.