2012-05-22 40 views
108

Tôi cần xóa tất cả dữ liệu tôi đã đặt thành localStorage. Bằng cách này, tôi có nghĩa là đặt lại hoàn toàn localStorage thành null khi người dùng xóa tài khoản của họ.HTML5 - localStorage xóa và xóa tất cả dữ liệu

Tôi có thể làm điều đó bằng một hàm đơn giản như thế nào?

Tôi cố gắng này:

function clearLocalStorage(){ 
    return localStorage= null; 
} 

Nhưng nó không hoạt động như mong đợi.

+0

Tham khảo này, có thể điều này giúp bạn [lưu trữ địa phương] (http://diveintohtml5.info/storage.html) – tilak

Trả lời

301

localStorage.clear();

sẽ hoạt động.

+2

Hoặc đó. [văn bản bổ sung] –

+4

window.localStorage.clear(); // nếu làm việc trên ionic, tức là –

+0

sessionStorage.clear(); để xóa dữ liệu lưu trữ phiên. –

3

Something như thế này nên làm:

function cleanLocalStorage() { 
    for(key in localStorage) { 
     delete localStorage[key]; 
    } 
} 

Hãy cẩn thận về việc sử dụng này, mặc dù, như là người dùng có thể có dữ liệu khác được lưu trữ trong localStorage và có lẽ sẽ khá đánh dấu nếu bạn đã xóa mà. Tôi khuyên bạn nên a) không lưu trữ dữ liệu của người dùng trong localStorage hoặc b) lưu trữ tài khoản của người dùng trong một biến duy nhất và sau đó xóa dữ liệu đó thay vì xóa tất cả các khóa trong localStorage.


Sửa: Như Lyn chỉ ra, bạn sẽ được tốt với localStorage.clear(). Tuy nhiên, các điểm trước đó của tôi vẫn đứng vững.

66

Nếu bạn muốn loại bỏ/sạch tất cả các giá trị từ lưu trữ địa phương vì sử dụng

localStorage.clear(); 

Và nếu bạn muốn loại bỏ các mục cụ thể từ các lưu trữ địa phương vì sử dụng đoạn mã sau

localStorage.removeItem(key); 
4

Sử dụng .one đảm bảo việc này chỉ được thực hiện một lần và không lặp lại.

$(window).one("focus", function() { 
    localStorage.clear(); 
}); 

Bạn có thể đặt một vài trình nghe sự kiện có tài liệu (nếu bạn cần các sự kiện khác để thực thi nhiều lần) miễn là bạn không lạm dụng nó, vì mục đích dễ đọc.

.one đặc biệt hữu ích khi bạn muốn xóa cục bộ chỉ khi lần đầu tiên trang web được mở hoặc khi ứng dụng dành cho thiết bị di động được cài đặt lần đầu tiên.

// Fired once when document is ready 
    $(document).one('ready', function() { 
     localStorage.clear(); 
    }); 
6

Nó chỉ hoạt động đối với tôi trong Firefox khi truy cập từ đối tượng window.

Ví dụ ...

window.onload = function() 
{ 
window.localStorage.clear(); 
} 
Các vấn đề liên quan