Как удалить indexedDB в Chrome


Я работаю в проекте, который включает в себя использование IndexedDB. Поскольку я начинаю знать эту технологию, мне нужно иметь возможность удалить indexedDB вручную, чтобы я мог начать все сначала.

Я нашел способ сделать это в Firefox, но я не могу найти способ для Google Chrome.

Я попытался удалить содержимое этой папки (я использую Mac):

{home}/Library/Application Support/Google/Chrome/Default/IndexedDB

но кажется, что Chrome все еще имеет БД в любом месте, поэтому я не могу начать все сначала.

15 82

15 ответов:

в теории, все, что вам нужно сделать, чтобы удалить IndexedDB в Chrome является:

  1. в Chrome перейдите в настройки > под капотом > Настройки контента > все файлы cookie и данные сайта > найдите домен, в котором вы создали IndexedDB
  2. нажмите либо "X", либо нажмите" индексированная база данных " > удалить

в Windows, файл находится здесь:

%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\IndexedDB

на Mac, выполните следующие действия:

  1. в Chrome, перейдите в "Настройки" (или" настройки " в меню Chrome)
  2. Нажмите кнопку "Показать дополнительные настройки" (в нижней части страницы)
  3. перейдите в раздел "Конфиденциальность" > "Настройки контента" > "все файлы cookie и данные сайта" > найдите домен, в котором вы создали IndexedDB
  4. нажмите либо "X", либо нажмите" индексированная база данных " > удалить

на Mac папка находится здесь:

/Users/[USERNAME]/Library/Application Support/Google/Chrome/Default/IndexedDB/

в Linux папка находится по адресу:

/home/[USERNAME]/.config/google-chrome/Default/IndexedDB/

мне удалось запустить следующее В Chrome:

indexedDB.deleteDatabase('DB NAME')

Alternarive должен сделать это в консоли разработчиков, используя эту команду:

indexedDB.deleteDatabase("databaseName")

в Chrome webkit вы можете использовать webkitGetDatabaseNames который возвращает все имена баз данных

С помощью этого кода Вы можете удалить все локальные indexedDB:

window.indexedDB.webkitGetDatabaseNames().onsuccess = function(sender,args)
{
    var r = sender.target.result;
    for(var i in r)
        indexedDB.deleteDatabase(r[i]);
}; 

удалить все базы данных технологии IndexedDB хром выполните следующие команды в эмуляторе терминала на OSX.

rm -rf ${HOME}/Library/Application\ Support/Google/Chrome/Default/IndexedDB/*

Теперь перезагрузите браузер и все.


поскольку мне нужно очень часто очищать базы данных IndexedDB, я установил псевдоним в своем ~./ bash_profile.

alias purge-idb="rm -rf ${HOME}/Library/Application\ Support/Google/Chrome/Default/IndexedDB/*"

чтобы удалить IndexedDB из версии OS X Chrome:

1) в настройках, Показать дополнительные настройки, а затем нажмите кнопку "Настройки контента" в разделе "Конфиденциальность".

2) во всплывающем окне" Настройки контента "нажмите кнопку" Все файлы cookie и данные сайта "в разделе" Файлы cookie".

3) во всплывающем окне" файлы cookie и данные сайта "используйте текстовое поле" Поиск файлов cookie " для поиска домена, который является источником IndexedDB.

4) Нажмите о записи домена в списке.

5) Нажмите на тег "индексированная база данных", указанный в домене.

6) Нажмите на кнопку "Удалить" в раскрывающемся списке подробно для индексированной базы данных.

в каталоге Debian GNU / Linux

/ home / [username]/.в config/Google-хром/по умолчанию/технологии IndexedDB/хром-ХХХ.технологии IndexedDB.leveldb/

содержит обычные файлы (например):

000003.log, CURRENT, LOCK, LOG, MANIFEST-000002

невозможно удалить базу данных IndexedDB (в отличие от хранилищ и индексов) программно.

как вручную, этот пост сведения о расположении базы данных в системах Windows для Firefox и Chrome.

обновление: благодаря разработчику Джошуа Белл, Chrome реализует off-spec (но безумно полезно) deleteDatabase метод

инструменты разработчика Chrome теперь имеют возможность удалить все базы данных для приложения в разделе "Application / Clear Storage".

напишите этот сегмент кода в консоли

window.indexedDB.deleteDatabase(<your db name>)

В Chrome 62

  1. открыть Settings
  2. убедитесь, что Advanced переключатель открыт
  3. клик Content Settings
  4. клик Cookies
  5. клик See all cookies and site data
  6. в правом верхнем углу вы увидите search bar, введите домен, который вы ищете (т. е. localhost)
  7. нажмите на элемент списка
  8. удалить ваши товары

Примечание: представьте, что у вас есть два браузера Chrome открыты, вы вошли в один и вы запускаете другой из Visual Studio как часть процесса отладки (но вы не вошли в него)... удаление данных IDB в одном не повлияет на другое.

кроме того, используйте свое веб-приложение в новом окне инкогнито и закройте его, когда закончите: база данных удалена.

в Chrome на OSX- /пользователи/пользователь/библиотеки/application поддержки/Гугл/Хром/по умолчанию/технологии IndexedDB Firefox OSX-пользователи/пользователь/библиотека/поддержка приложений/Firefox/профили / 4zaemxcn.default / indexedDB

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

в windows вы можете вручную удалить все базы данных IndexedDB, найдя каталог IndexedDB для браузера и удалив его

Для Chrome:

C:\Users\user-name\AppData\Local\Google\Chrome\User Data\Profile 1\IndexedDB

вы можете удалить каждую папку, которая очищает indexedDB. Теперь ты можешь начать все сначала.

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

мое решение в конце концов было основано на документация mozilla, но требуется, чтобы я сначала закрыл базу данных.

для меня, в Javascript, код выглядел так:

my_db_instance.close(function(e){console.log(e)});
var DBDeleteRequest = indexedDB.deleteDatabase("my_db_name");

// When i had the base open, the closure was blocked, so i left this here
DBDeleteRequest.onblocked = function(event) {
  console.log("Blocked");
};

DBDeleteRequest.onerror = function(event) {
    console.log("Error deleting database.");
  console.log(event);
};

DBDeleteRequest.onsuccess = function(event) {
  console.log("Database deleted successfully");
};