【问题标题】:how to store value permanently in javascript variable如何将值永久存储在javascript变量中
【发布时间】:2011-01-04 23:32:54
【问题描述】:

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

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

如何使用 jQuery、jsp、ajax 和 javascript 来实现?

我不能使用任何会话或 cookie 和数据库访问。 这里我通过“location.href”重定向页面

请尽快给我解决方案

【问题讨论】:

标签: javascript jquery ajax jsp


【解决方案1】:

听起来您想将值存储在 cookie 中。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      你可以使用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 的后备引擎,由于 Adob​​e 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> 
      

      【讨论】:

      • 毫无疑问。它是一个很好的解决方案,但我也不能使用 cookie。我必须保持一些约束。在这里,我通过 location.href 从关联的 js 文件中重定向页面。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-12
      • 1970-01-01
      • 2021-03-23
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多