Làm cách nào để xóa indexedDB?


92

Tôi đang làm việc trong một dự án liên quan đến việc sử dụng IndexedDB. Khi tôi bắt đầu biết đến công nghệ này, tôi cần có thể xóa một DB được lập chỉ mục bằng tay để có thể bắt đầu lại.

Tôi đã tìm thấy cách để thực hiện điều đó trong Firefox, nhưng tôi không thể tìm thấy cách cho Google Chrome.

Tôi đã thử xóa nội dung của thư mục này (tôi đang sử dụng Mac):

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

nhưng có vẻ như Chrome vẫn có DB ở bất cứ đâu nên tôi không thể bắt đầu lại.

Câu trả lời:


101

Về lý thuyết, tất cả những gì bạn cần làm để xóa IndexedDB trong Chrome là:

  1. Trong Chrome, đi tới Tùy chọn> Nâng cao> Cài đặt nội dung> Tất cả cookie và dữ liệu trang web> tìm miền mà bạn đã tạo IndexedDB
  2. Nhấn "X" hoặc nhấp vào "Cơ sở dữ liệu được lập chỉ mục"> Xóa

Trong Windows, tệp nằm ở đây:

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

Trên Mac, hãy làm như sau:

  1. Trong Chrome, đi tới "Cài đặt" (hoặc "Tùy chọn" trong menu Chrome)
  2. Nhấp vào "hiển thị cài đặt nâng cao" (ở cuối trang)
  3. Đi tới "Bảo mật"> "Cài đặt Nội dung"> "Tất cả cookie và Dữ liệu Trang web"> tìm miền mà bạn đã tạo IndexedDB
  4. Nhấn "X" hoặc nhấp vào "Cơ sở dữ liệu được lập chỉ mục"> Xóa

Trên Mac, thư mục nằm ở đây:

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

Trên Linux, thư mục được đặt tại:

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

2
Chrome dành cho OS X không có mục menu "Tùy chọn" hoặc bất kỳ tham chiếu nào đến "Nâng cao", vì vậy đây có thể là gợi ý khó hiểu đối với một số người.
Mark Caufman 17/12/12

3
Trên OS X, bạn có thể đến đó thông qua "Chrome> Xóa dữ liệu duyệt web ...", đóng hộp thoại và sau đó đi tới "Cài đặt nâng cao" thay vì "Nâng cao". Sau đó nó ~ giống như trên.
natevw 27/12/12

56
Tôi nghĩ sẽ dễ dàng hơn để chạy indexedDB.deleteDatabase ("databaseName") trong bảng điều khiển.
user854301

1
Trên OSX Chrome v31, bước: 1. Cài đặt> Hiển thị cài đặt nâng cao ...> Bảo mật> Cài đặt nội dung ...> Cookie> Tất cả cookie và dữ liệu trang web ... 2. Tìm kiếm để lọc IP của bạn. 3. Nhấp vào Indexed database. 4. Loại bỏ nó!
Amo Wu

Có thể đó là Chrome trong hệ điều hành Linux hoặc có thể là phiên bản mới hơn, nhưng đây là các bước để đạt được điều đó theo kinh nghiệm của tôi: 1. Cài đặt> Hiển thị cài đặt nâng cao ...> Cài đặt nội dung> Tất cả cookie và trang web dữ liệu tìm miền mà bạn đã tạo IndexedDB 2. Nhấn "X" hoặc nhấp vào "Cơ sở dữ liệu được lập chỉ mục"> Xóa
Tiên tri phần mềm

160

Tôi đã chạy thành công phần sau trong Chrome:

indexedDB.deleteDatabase('DB NAME')

14
Điều này liên tục thất bại đối với tôi, sau đó tôi nhận ra rằng tôi cần phải đóng DB trước. Trong trình xử lý thành công của mình, tôi giữ một tham chiếu hữu ích đến DB (e.target.result) để tôi có thể gọi close () trên đó. Chỉ khi đó mới có thể gọi deleteDatabase ('DB NAME'). Bạn cũng sẽ cần phải nhấp chuột phải và sử dụng 'refresh indexedDB' nếu bạn đang ở trên tab tài nguyên của công cụ dành cho nhà phát triển chrome để xem kết quả của việc xóa.
fullstacklife

không thể tìm thấy tên máy chủ cho ứng dụng chrome nhưng điều này hoạt động khi bạn kiểm tra ứng dụng.
khany

29

Alternarive thực hiện điều đó trong bảng điều khiển dành cho nhà phát triển, bằng cách sử dụng lệnh sau:

indexedDB.deleteDatabase("databaseName")

1
Đây là cách dễ dàng nhất. Bạn chỉ cần nhấp chuột phải vào 'IndexedDB' trong Tài nguyên và chọn 'Làm mới IndexedDB' để xác nhận rằng cơ sở dữ liệu đã được chỉnh sửa.
Velojet

10

Trong bộ web của Chrome, bạn có thể sử dụng webkitGetDatabaseNamesnó trả về tất cả các tên cơ sở dữ liệu

Với mã này, bạn có thể xóa tất cả local indexedDB:

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

5

Để xóa tất cả cơ sở dữ liệu Chrome IndexedDB, hãy chạy phần sau trong trình mô phỏng thiết bị đầu cuối OSX.

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

Bây giờ khởi động lại trình duyệt của bạn và thế là xong.


Vì tôi cần phải thanh lọc cơ sở dữ liệu IndexedDB rất thường xuyên, tôi đã thiết lập một bí danh trong ~. / Bash_profile của mình.

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

3

Để xóa một IndexedDB khỏi phiên bản OS X của Chrome:

1) Trong Tùy chọn, hiển thị Cài đặt Nâng cao, sau đó nhấp vào nút "Cài đặt Nội dung" trong phần "Quyền riêng tư".

2) Trong cửa sổ bật lên "Cài đặt Nội dung", nhấp vào nút "Tất cả Cookie và Dữ liệu Trang web" trong phần "Cookie".

3) Trong cửa sổ bật lên "Cookie và dữ liệu trang web", sử dụng hộp văn bản "Tìm kiếm Cookie" để tra cứu miền là nguồn của IndexedDB.

4) Nhấp vào mục tên miền trong danh sách.

5) Nhấp vào thẻ "cơ sở dữ liệu được lập chỉ mục" được liệt kê trong tên miền.

6) Nhấp vào nút "Xóa" trong chi tiết thả xuống cho cơ sở dữ liệu được lập chỉ mục.


2

Trong thư mục Debian GNU / Linux

/home/[username]/.config/google-chrome/Default/IndexedDB/chrome-xxx.indexeddb.leveldb/

chứa các tệp thông thường (ví dụ):

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


2

Không thể xóa cơ sở dữ liệu IndexedDB (trái ngược với các cửa hàng và chỉ mục) theo chương trình.

Đối với các giải pháp thủ công, bài đăng này nêu chi tiết vị trí của cơ sở dữ liệu trên hệ thống Windows cho Firefox và Chrome.

Cập nhật: Cảm ơn nhà phát triển Joshua Bell, Chrome triển khai một deleteDatabasephương pháp không có thông số kỹ thuật (nhưng cực kỳ hữu ích) trên window.indexedDBđối tượng. Đây là mảnh vỡ đã hạ cánh bản vá này. Hơn nữa, trong các phiên bản IE mới hơn, bạn có thể xóa cơ sở dữ liệu thông qua bảng cài đặt .


2

viết đoạn mã này trong bảng điều khiển

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


2

Công cụ dành cho nhà phát triển Chrome hiện có tùy chọn để xóa tất cả cơ sở dữ liệu cho ứng dụng, trong "Ứng dụng / Xóa bộ nhớ".


2

Chrome -> Cửa sổ Thanh tra -> Ứng dụng -> nhìn vào menu bên trái -> Bộ nhớ -> IndexedDB


1

Để hoàn thành câu trả lời của @ Judson, dựa trên nhận xét của @ fullstacklife; để xóa IndexedDB trong chrome bằng javascript, bạn nên:

let currentIDB = indexedDB.open("DB_NAME", DB_VERSION_INTEGER);
    currentIDB.onblocked = function(){
        //
    };
    currentIDB.onerror = function(){
        //
    };
    currentIDB.onsuccess = function(){
        var idb = currentIDB.result;
        idb.close();
        indexedDB.deleteDatabase("DB_NAME");
    };

0

Ngoài ra, hãy sử dụng ứng dụng web của bạn trong một cửa sổ ẩn danh mới và đóng nó khi bạn hoàn tất: cơ sở dữ liệu đã bị xóa.


0

Trong chrome OSX- / Users / user / Library / Application Support / Google / Chrome / Default / IndexedDB Firefox OSX - Users / user / Library / Application Support / Firefox / Profiles / 4zaemxcn.default / indexedDB

Bạn chỉ cần hiển thị thư mục thư viện. Tất cả các tệp được lưu trữ trong các thư mục (được gọi là tên miền) và các tệp sử dụng hàm băm, nhưng bạn có thể tìm ra tên của cơ sở dữ liệu từ nó. Bạn có thể xóa dữ liệu khỏi IDB vì nó là cơ sở dữ liệu phía máy khách và tất cả dữ liệu được lưu trữ cục bộ.


0

Trong windows, bạn có thể xóa thủ công toàn bộ cơ sở dữ liệu IndexedDB bằng cách định vị thư mục IndexedDB cho trình duyệt và xóa nó

Đối với Chrome:

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

Bạn có thể xóa mọi thư mục xóa DB được lập chỉ mục. Bạn có thể bắt đầu lại ngay bây giờ.


0

Điều này có thể là quá mức cần thiết cho câu hỏi cụ thể của bạn, nhưng tôi vẫn tiếp tục kết thúc ở đây trong cuộc đấu tranh để xóa idb của mình.

Giải pháp của tôi cuối cùng dựa trên tài liệu của mozilla , nhưng yêu cầu trước tiên tôi phải đóng cơ sở dữ liệu.

Đối với tôi, trong Javascript, mã trông như thế này:

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");
};

0

Tôi cần loại bỏ một DB được lập chỉ mục trong Chrome. Vì vậy, tôi tìm kiếm thứ tệ hại được gọi là "trợ lý email" này trên máy tính của mình bằng MasterSeeker. Tìm thấy thứ trong một loạt các thư mục đã được indexDB trong Chrome. Có vẻ như quá dễ dàng để tôi xóa các tệp đó. Tôi đã tìm cách làm, và kết thúc ở đây. Tôi đã truy cập cài đặt chrome với PC chạy Windows 10 của mình. Tôi vừa thử xóa dữ liệu duyệt web. Presto - tất cả các tệp đó đã biến mất khỏi indexedDB, bao gồm cả crapola "trợ lý email" đáng sợ đó. Bây giờ khi tôi nhìn vào thư mục indexedDB, tất cả những gì tôi thấy đã xuất hiện trở lại là https_mail.google.com_0.indexeddb.leveldb - trông giống như một thứ an toàn không gây khó chịu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.