Spec-Zone.ru › Web Extensions

tabs.warmup()

Для оптимизации использования системных ресурсов браузеры могут удалять графические ресурсы, связанные с вкладками, к которым пользователь не обращался определённое время. Если браузер сделал это для вкладки, то повторная активация вкладки (например, когда пользователь переключается на неё) может занять больше времени, чем обычно.

API tabs.warmup() позволяет расширению начать процесс отрисовки ресурсов для неактивной вкладки, если расширение ожидает, что пользователь скоро переключится на эту вкладку. Это ускоряет фактический переход на вкладку по сравнению с тем, как это было бы в противном случае.

Обратите внимание, что этот API не работает с удалёнными вкладками и не нужно вызывать его непосредственно перед переключением на вкладку. Это просто улучшение производительности, когда переход на вкладку можно предвидеть, например, при наведении указателя мыши на кнопку, которая при нажатии переключит на вкладку.

Ожидается, что этот API будет в основном полезен расширениям для управления вкладками.

Это асинхронная функция, которая возвращает Promise.

Синтаксис

let warming = browser.tabs.warmup(
  tabId               // integer
)

Параметры

tabId

integer. ID вкладки для подготовки. Если переданный сюда аргумент не является целым числом (в частности, если это null или undefined) то warmup() выбросит исключение синхронно.

Возвращаемое значение

A Promise, который будет выполнен без аргументов, если вкладка, идентифицируемая tabId, успешно подготовлена. Если tabId не идентифицирует открытую вкладку или подготовка завершается неудачно по какой-либо другой причине, то обещание будет отклонено с сообщением об ошибке.

Примеры

Этот код добавляет обработчик события browserAction.onClicked. Обработчик получает все вкладки в текущем окне, содержащие страницы по адресу "https://developer.mozilla.org/", и готовит первую найденную вкладку.

function onSuccess() {
  console.log("success!");
}

function onFailure(error) {
  // e.g. ID of a nonexistent tab
  console.error(error);
}

async function warmupMDN() {

  const mdnTabs = await browser.tabs.query({
    currentWindow: true,
    url: "https://developer.mozilla.org/*"
  });

  if (mdnTabs.length > 0) {
    const warming = browser.tabs.warmup(mdnTabs[0].id);
    warming.then(onSuccess, onFailure);
  }

}

browser.browserAction.onClicked.addListener(warmupMDN);

Совместимость с браузерами

Рабочие столы Мобильные
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet
warmup Нет Нет 79 ? Нет Нет ? ? Нет ? Нет ?

© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/warmup

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API