代码之家  ›  专栏  ›  技术社区  ›  Iyashu5040

使用jQuery Mobile和PhoneGap构建Symbian ^3上的会话存储

  •  0
  • Iyashu5040  · 技术社区  · 13 年前

    我正在做一个项目,使用jQuery Mobile、HTML5和PhoneGap Build创建一个跨平台应用程序。我们的目标平台包括Symbian ^3。

    我需要能够跟踪一些会话数据,比如用户的ID和他们是否登录。Symbian在这方面很痛苦,因为我尝试过的解决方案似乎都不起作用。

    我尝试过:

    • HTML5会话存储和本地存储。这两者都会导致Symbian上的应用程序在被调用时立即冻结。
    • 饼干。这些总是返回Undefined,即使您在设置它们之后立即访问它们。
    • 全局变量。我创建了一个.js,其中定义了一些var,以便在整个应用程序中使用。这个脚本包含在每个HTML文件的头部,可能需要它。不幸的是,这不起作用,因为在页面之间切换时会重新定义变量,从而丢失会话数据。

    我已经达到了通过网络搜索和实验所能达到的极限,所以我在这里提出了我的第一个问题。我很乐意上传一些代码示例,尽管确实没有太多可展示的内容。

    至于实际的问题:我如何在Symbian上的jQuery Mobile应用程序中创建会话上下文,使其在页面转换中持续存在?

    1 回复  |  直到 13 年前
        1
  •  0
  •   frequent    13 年前

    您需要了解JQM是如何工作的。当你从A页开始并转到B页时,你并没有真正离开A页。相反,JQM AJAX请求B页,去掉外面的所有内容 <div data-role="page"></div> 并将其附加到DOM中。

    这意味着您的DOM将始终保持“活动”状态,无论您在应用程序中的哪个位置(除非您设置 data-ajax="false" 在链接上)。

    因此,您的选项3(全局变量)应该有效,因为 a.js 文件将只在A页加载(并在B、C、D页剥离…)。如果变量被覆盖,那是因为您可能正在覆盖它们-您需要显示其中的内容 阿拉伯联合酋长国 .

    另一种选择是将应该持久化的信息直接附加到DOM,或者使用 data() ( api )比如:

     $('html').data("foo": bar)
    

    或者,如果没有那么多信息,只需使用数据属性

     $('html').jqmData("some","thing");