#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.