Чтобы воркер не рос, я в своем проекте создаю для каждого jsonp запроса отдельный воркер и потом убиваю его. Норм работает, там по 3 запроса в секунду к ВК улетает.
function getJSONP (script_url, callback) {
// Создаём веб-воркер, который импортирует нам скрипт с коллбэком(jsonp)
const worker = new Worker(window.URL.createObjectURL(new Blob([
'let cb=function(val){postMessage(val)};' +
'importScripts(\'' + script_url + '&callback=cb\');'],
{ type: 'text/javascript' }
)))
// Слушаем ответ от воркера
worker.onmessage = (e) => {
worker.terminate()
callback(e.data)
}
// Убиваем воркер если долго нет ответа
setTimeout(() => { worker.terminate() },10000)
}