2013-07-16 68 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