Выполнить scriptA.js если URL-адрес изображения есть в СПИСКЕ, выполните scriptB.js если URL-адреса нет в СПИСКЕ

#javascript #jquery #caching #google-chrome-extension

#javascript #jquery #кэширование #google-chrome-расширение

Вопрос:

Я создаю расширение Google Chrome для блокировки определенных изображений из сообщений Reddit в зависимости от некоторого внутреннего компьютерного зрения, которое работает на Python. Чтобы сэкономить на вызовах вычислений / API, я надеюсь, что расширение «запомнит», какие URL-адреса изображений оно «видело» раньше, и выберет, следует ли вызывать внутренний API на основе этой памяти.

В настоящее время я использую JavaScript и jQuery для блокировки изображений в скрипте расширения content.js , и мне любопытно, как другие порекомендовали бы мне: 1) сохранение в памяти списка URL-адресов изображений, которые были «просмотрены» ранее, и 2) проверка / ссылка на этот список, чтобы решить, запускать scriptA.js или scriptB.js . (Список URL-адресов изображений может быть длинным (10 000 ); Я не уверен, что это важное соображение.)

Комментарии:

1. вы заглядывали в localStorage и всю эту чушь? похоже, вы можете просто добавить к массиву, который вы храните в локальном хранилище, и сначала проверить это, чтобы узнать, выполняете ли вы вообще вызов api? похоже, это именно то, что вам нужно, но я с этим не знаком.

2. Я еще не проверял localStorage, но я попробую. Спасибо!

3. хорошо, поэтому рассмотрим это подробнее. сложно получить данные о кликах или посещенных ссылках, отличные от записи в реальном времени. вероятно, лучше всего использовать локальное хранилище. но вы не можете делать междоменные вещи. даже субдоменные вещи … но IFRAMES — интересный обходной путь.

4. Используйте chrome.WebRequest с глобальным массивом в фоновом скрипте для прямой блокировки URL-адресов, сценарий содержимого не требуется. Для сохранения результатов между сеансами браузера используйте chrome.storage API.