如何使用javascript保存最近的搜索?

时间:2012-11-25 23:33:25

标签: javascript jquery json forms

当用户执行搜索时,应保存这些搜索设置以供将来使用。

用户应填写一些表单字段,然后执行搜索。当他进行新的搜索时,旧的搜索应该能够等等。

我正在使用javascript,jQuery。

我怎么能这样做?

我的意思是将它保存在localmachine中,而不是保存在数据库中。

4 个答案:

答案 0 :(得分:3)

使用HTML5本地存储来存储和读取已保存的搜索。:

// Write a local item..
localStorage.setItem("myKey", "myValue");

// Read a local item..
var theItemValue = localStorage.getItem("myKey");

// Check for changes in the local item and log them..
window.addEventListener('storage', function(event) {
    console.log('The value for ' + event.key + ' was changed from' + event.oldValue + ' to ' + event.newValue);
}, false);

// Check for HTML5 Storage..
function supports_html5_storage() {
    try {
        return 'localStorage' in window && window['localStorage'] !== null;
    } catch (e) {
        return false;
    }
}

答案 1 :(得分:1)

您可以尝试使用此插件https://sites.google.com/site/daveschindler/jquery-html5-storage-plugin

您的目标是在执行操作之前保存搜索,一旦他们输入搜索,所以onSubmit of the form,使用插件将其保存到本地存储,然后执行搜索。

每次用户访问页面时,您还需要从存储中加载,以获取最后几次搜索。

答案 2 :(得分:1)

您可以使用Cookie或网络存储。更多浏览器支持Cookie,但Web存储更易于使用。如果你使用cookies,我推荐这个jQuery插件https://github.com/carhartl/jquery-cookie

保存设置$.cookie('key', 'value');

阅读设置$.cookie('key');

使用所有主流浏览器的最新版本支持的Web存储:

localStorage.setItem(key, value);
localStorage.getItem(key, value);

您可以使用Google查找有关API的更多详细信息

答案 3 :(得分:0)

TL; DR我已经编写了一个库来处理这种+极端情况,有关用法,请参见https://github.com/JonasBa/recent-searches#readme

虽然所有示例在技术上都可以,但它们不涵盖存储最近搜索的任何极端情况,例如实现过期,排名或LocalStorage空间的限制。

示例 到期日: 假设某人搜索了一个查询iPhone,但是在一个月前搜索了一个查询repairing iPhone,则修复iPhone查询可能已过时。

最近搜索的排名 在进行前缀搜索时,排名也一样,如果用户在3小时之前进行了“苹果电视”查询,而在8小时之前进行了“电视电缆”查询,而现在他们在搜索“电视”,则您可能想要实现以下排名系统这两个。

安全处理存储空间 只需写入LocalStorage就会产生大量的JSON,您每次都需要对其进行解析,从而逐渐降低应用程序的速度,直到达到极限并失去此功能。

正是由于这个问题,我建立了一个最近搜索的库来帮助您解决所有问题。您可以通过npm使用它并找到它here。它将帮助您解决上述所有问题,并让您真正快速地建立最新搜索!