如何在javascript变量中永久存储值

时间:2010-01-14 07:01:39

标签: javascript jquery ajax jsp

我想制作如下的应用程序。

首先是一个带有四个单选按钮的页面。用户点击任何单选按钮但不保存,他转到另一个页面。然后,如果他带着单选按钮回到同一页面,它会在进入另一页面之前显示所选的单选按钮。

如何使用jQuery,jsp,ajax和javascript进行操作?

我无法使用任何会话或coockies和数据库访问。 在这里,我通过“location.href”重定向页面

请尽快给我解决方案

3 个答案:

答案 0 :(得分:2)

您可以使用YUI 2: Storage Utility

  

存储实用程序提供了一种机制,用于存储大量文本数据(客户端),无论您的浏览器是否支持建议的HTML 5存储规范。

     

存储实用程序的每个实例都利用三个存储引擎之一来存储数据:

     
      
  • HTML 5:如果客户端浏览器支持HTML 5,则此引擎将包装浏览器的本机存储功能(document.localStorage和document.sessionStorage)。
  •   
  • Google Gears:Google Gears是一个浏览器扩展程序,用户可以在其计算机上安装。它的一个功能是SQLite数据库;使用Gears引擎时,Storage Utility将此数据库用于客户端存储。
  •   
  • SWF:YUI提供了一个SWFStore实用程序,可以规范化对Flash共享对象的访问。这是Storage Utility的后备引擎,由于Adobe Flash插件的大量渗透,它可以在大多数浏览器上运行。
  •   

  

一般使用模式

     

以下是用于获取引擎,然后写入/读取某些数据的通用代码模式:

// this will fetch the first available engine
var storageEngine = YAHOO.util.StorageManager.get();

storageEngine.subscribe(storageEngine.CE_READY, function() {
    storageEngine.setItem('testText', 'this is a triumph');
    storageEngine.setItem('testNumber', 1234567890);
    storageEngine.setItem('testBoolean', true);
    alert(storageEngine.getItem('testText'));
});

当然,最简单,最低技术的方法是use a cookie,其中有jQuery Plugin

它的基本用法是like this

<script src="../jquery-1.3.min.js" type="text/javascript"></script> 
<script src="jquery.cookie.js" type="text/javascript"></script> 
<script type="text/javascript"> 
    $(function() {
        var COOKIE_NAME = 'test_cookie';
        var ADDITIONAL_COOKIE_NAME = 'additional';
        var options = { path: '/', expires: 10 };

        // set cookie by number of days
        $('a').eq(0).click(function() {
            $.cookie(COOKIE_NAME, 'test', options);
            return false;
        });

        // set cookie by date
        $('a').eq(1).click(function() {
            var date = new Date();
            date.setTime(date.getTime() + (3 * 24 * 60 * 60 * 1000));
            $.cookie(COOKIE_NAME, 'test', { path: '/', expires: date });
            return false;
        });

        // get cookie
        $('a').eq(2).click(function() {
            alert($.cookie(COOKIE_NAME));
            return false;
        });

        // delete cookie
        $('a').eq(3).click(function() { 
            $.cookie(COOKIE_NAME, null, options);
            return false;
        });
</script> 

答案 1 :(得分:0)

听起来您想将值存储在cookie

编辑:这是一个用于处理cookie的jQuery插件:http://plugins.jquery.com/project/Cookie

答案 2 :(得分:0)

将选择作为GET参数附加到所有链接(可能不是一种方法让客户端处理状态)或使用cookie (最好是jQuery cookie API,它是比vanilla JavaScript cookie处理容易一些)。