【问题标题】:session handling in jqueryjquery中的会话处理
【发布时间】:2012-07-19 18:41:25
【问题描述】:

我正在使用以下代码在 jQuery 的会话对象中存储值,但我得到错误 $.session function is not a function。

我还从 githhub 站点添加了插件“jquery.session.js”,但它不起作用。请让我帮忙看看有什么问题

 // To Store
 $(function() {
      $.session("myVar", "value");
 });


 // To Read
$(function() {
      alert( $.session("myVar") );
});

如果有任何其他方法可以做到这一点......那么也告诉我......

【问题讨论】:

标签: jquery


【解决方案1】:

在我看来,您不应该加载和使用不必要的插件。这个特殊的 jQuery 插件并没有给你任何东西,因为直接使用 JavaScript sessionStorage 对象的复杂程度完全相同。该插件也不提供与其他 jQuery 功能交互的更简单的方法。此外,使用插件的做法不利于深入理解某些东西是如何工作的。 sessionStorage 只有在理解的情况下才应该使用。如果理解了,那么使用jQuery插件实际上是更多的努力。

考虑直接使用sessionStoragehttps://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage#sessionStorage

【讨论】:

  • 如果 html5 会话存储不可用,插件会自动使用 cookie 作为后备。
  • 确实如此,但没有记录在哪里。 cookie 和会话变量也是非常不同的东西。如果目标是考虑所有情况,那么应该使用类似samy.pl/evercookie
【解决方案2】:

假设您指的是this plugin,您的代码应该是:

// To Store
$(function() {
    $.session.set("myVar", "value");
});


// To Read
$(function() {
    alert($.session.get("myVar"));
});

在使用插件之前,请记住阅读其文档以了解如何使用它。在这种情况下,可以在项目页面上显示的README.markdown文件中找到一个使用示例。

【讨论】:

  • 顺便说一句,如果您打算使用它来存储安全敏感信息,因为这些会话是在客户端处理的,它可能容易被编辑。
  • 您好 Frederic,我已经使用了您建议的上述功能。我也按照您的想法使用插件,但出现这样的错误....... 不支持操作 [Break On This Error] 不支持操作 return window.sessionStorage.getItem(key ) || this._getFallback(key); jquery.session.js(第 85 行)
  • @user,您的浏览器似乎不支持会话存储。是否通过this test
猜你喜欢
  • 2012-01-27
  • 2015-01-19
  • 1970-01-01
  • 2011-01-20
  • 1970-01-01
  • 2013-06-21
  • 1970-01-01
  • 2013-03-07
  • 1970-01-01
相关资源
最近更新 更多