2013-07-16 65 views
4

我正在開發一個項目,這是一個移動web應用程序。我正在使用JQuery移動。本地存儲vs Web SQL

我有一個包含jQuery列表視圖的頁面,當用戶單擊列表視圖上的每個項目時,與該項目相關的所有數據都會傳遞給一個對話框頁面。我使用本地存儲來傳遞頁面之間的值。但是我想要做的是記錄用戶的操作並將它們顯示爲活動源。存儲他們點擊的項目,他們在打開的對話框頁面上花了多長時間,並能夠在新頁面上顯示所有這些信息。例如

您點擊項

您的項目花了15秒b

所以將本地存儲是很好的這樣或或WEB SQL?

我還注意到WeB SQL不再被主動維護? http://www.w3.org/TR/webdatabase/ 這是否意味着它將被棄用?

本地存儲例如:

每個項目是一個JSON對象,我需要通過整個對象在一個新的頁面來查看它,所以我有:

function addPostToLocalStorage(YTfeeditems){ 
    $(".item").on('click', function() { 

     var i = $('.item').index(this); 
     console.log(i); 

     var Viditem = YTfeeditems[i]; 
     console.log(Viditem); 

     localStorage['youtubeclickedPost'] = JSON.stringify(Viditem); 
     storedItem = localStorage['youtubeclickedPost']; 
     retrievPostFromLocalStorage(); 
    } 
}); 

function retrievPostFromLocalStorage(){ 
    var retrievedStringItem = localStorage.getItem(['youtubeclickedPost']); 
    var convertedPost = JSON.parse(retrievedStringItem); 
    showDetailedPost(convertedPost); 
} 

被點擊的項目時,我會想存儲視頻的ID,記錄點擊的時間,記錄ytfullviewpage打開的時間以及在該頁面記錄中如果點擊「豎起大拇指」圖像或單擊「拇指向下」時添加這些記錄細節提交給當地ftorage,並在新頁面中檢索它們以顯示它們。我似乎理解這樣做的本地存儲方法。我已經粘貼了我的javascript這個here

這可能會給你一個更好的主意。

+0

本地存儲(如果可用)對此非常理想。它很容易使用,而且您不需要查找任何類型的查詢語言,因此SQL(任何類型的)只會過度。 – Archer

+0

@Archer當前我使用本地存儲來存儲該項目,當用戶點擊它時,我希望能夠檢索用戶點擊過的所有項目,但每次用戶點擊新項目時都會覆蓋該項目,所以我只能檢索最後存儲的項目。我是否應該爲用戶點擊的每個項目提供不同的鍵?如果是的話,這是如何實現的,因爲我正在循環一個列表? :s – Dot

+0

您可以存儲保存所有項目信息的對象。只需檢索對象,寫入新信息並再次保存。如果您舉例說明您希望每次點擊存儲什麼樣的信息,那麼我會爲您做一個示例併發布答案。 – Archer

回答

7

WEB SQL已棄用,但仍在某些平臺上可用http://caniuse.com/#feat=sql-storage localstorage我們可能適合您的解決方案。如果您覺得您需要更多存儲空間,請使用http://pouchdb.com/,因爲它具有適用於不同瀏覽器存儲的交叉適配器以及一些不錯的功能,如同步。

+3

PouchDB +1。這是一個很好的替代Web SQL的優雅解決方案。 – Seiyria

+0

@timmak謝謝,我會看看poucheDB,但是如果本地存儲是一個很好的解決方案,我希望能夠使用它,但我不確定,如何實現它,如果我要存儲一些項目並在全新頁面中檢索它們 – Dot

+0

@Dot http://brian.io/lawnchair/將幫助你 – timmak