ServiceWorker - новая api, доступная в Chrome. Одна из многих вещей, которую он позволяет вам сделать, - перехватить сетевые запросы и ответить кешированной версией. Я реализую кнопку «Принять это офлайн», которая динамически добавляет вещи в кеш. Я хотел бы сообщить пользователю, сколько места я использую, и сколько записей я вложил в кеш.Как я могу получить размер и/или количество элементов в кеше ServiceWorker?
Возможно ли запросить кеш, чтобы получить количество элементов в нем? Могу ли я сообщить об общем размере вещей, хранящихся в нем?
Как уже упоминалось в нижеприведенном ответе, вы можете использовать 'cacheName.keys(). Then (function (keys) {keys.length})'. В настоящее время нет способа вычислить размер на диске, но вы можете посмотреть заголовок 'content-size' для каждого ответа, но он не будет точно соответствовать тому, что хранится на диске. (Также некоторые http-серверы не задают размер содержимого правильно.) В этой области есть открытая спецификация с помощью quota-api и на ServiceWorkers: https://github.com/slightlyoff/ServiceWorker/issues/587 –
Спасибо @ BenKelly за ссылку на обсуждение этой проблемы github. Я буду взвешивать свои 2 цента. – Rob