1
我構建了一個聊天應用程序,並使用localStorage
即使在頁面刷新後也保持對話。如果聊天結束,我想刪除localStorage
並清除聊天窗口,這工作正常。但是,如果用戶再次發起聊天,並刷新頁面比以前的聊天對話恢復到localStorage
本地存儲恢復頁面刷新後刪除的數據
下面是我的代碼:
var CHAT_MSG_LOCAL = []; //store messages into it
CHAT_MSG_LOCAL.push(msgObj); //push message into the variable
//save in local storage when page refreshed
$(window).on('unload', function() {
saveLocalData(CHAT_MSG_LOCAL);
});
//Retrive from local storage when page load
$(document).ready(function() {
retriveLocalData();
var data = retriveLocalData();
if (data.length > 0)
for (var i = 0; i < data.length; i++) {
output(data[i]); // generate html
}
});
//Chat End
$(".close-conversation").on("click", function (e) {
e.preventDefault();
localStorage.removeItem('local-messages');
localStorage.setItem('local-messages', []);
});
//save function
function saveLocalData(CHAT_MSG_LOCAL) {
var messageString = JSON.stringify(CHAT_MSG_LOCAL);
localStorage.setItem('local-messages', messageString);
}
//retrive function
function retriveLocalData() {
var localmsgObj = localStorage.getItem('local-messages');
var retrievedObject = {};
if (localmsgObj.length > 0) {
retrievedObject = JSON.parse(localmsgObj);
}
return retrievedObject;
}
請幫我發現其中的錯誤。提前致謝。
謝謝。但它不適合我。 –
在以前的代碼中關閉聊天窗口時,local-messages param是空的。然後當時用戶重新打開聊天,以及local-param爲空,一旦用戶刷新瀏覽器,然後「卸載事件」將再次將CHAT_MSG_LOCAL中可用的數據保存到本地存儲中,頁面刷新數據再次通過retriveLocalData()在document.ready中調用。因此清除CHAT_MSG_LOCAL = [];必須解決我們的問題。你可以請附上確切的js文件。非常感謝 –
需要我的代碼修復。現在它的工作。標記爲已採取的答案。謝謝@amit wadhwani –