2015-11-16 96 views
0

在我的Web應用程序中,我想存儲特定用戶使用本地存儲的搜索關鍵字,以便稍後當該用戶嘗試再次搜索時顯示這些搜索關鍵字。使用HTML本地存儲器存儲用戶特定數據

我將每個用戶與他們的用戶名(這是唯一的)區分開來,並且每次他們鍵入並搜索某些內容時,我都使用他們的用戶名作爲鍵和該字符串作爲項目。

$('#search-submit').on('click', function(){ 

    var keyword = $('#search-input').val(); 
    localStorage.setItem(username,keyword); 
    //.... 
} 

但是這會每次覆蓋鍵項對。

有什麼辦法可以存儲多個項目,同時保持它們與相同的用戶名關聯?

+0

使關鍵字更詳盡的數據結構,像數組或JSON字符串? – hendry

+0

本地存儲對用戶而言是本地的,而不是服務器,因此您只需將其存儲在用戶計算機上即可。沒有用戶名,只需將其存儲在JSON數組中即可。 – Darren

+1

@Darren雖然這將是大多數情況下的情況,通過將用戶名存儲爲密鑰,它可以避免說在丈夫和妻子之間發生衝突,而這兩者之間都會在同一臺計算機上使用您的應用程序。 MAYBE你想要命名空間爲'localStorage ['myApp.username'] = keywords' – Brian

回答

0

檢查,看是否存在條目,如果是的話只是追加新的數據,而不是覆蓋它:

function saveKeyword(name, keyword) { 
    var exists = false; 
    for (var key in localStorage) { 
     if (key === name) { 
      exists = true; 
     } 
    } 

    if (exists) { 
     var temp = localStorage.getItem(name); 
     localStorage.setItem(name, temp + ', ' + keyword); 
    } else { 
     localStorage.setItem(name, keyword); 
    } 
}