刷新jquery移动页面时会发生什么

what happens when i refresh a jquery mobile page

本文关键字:什么 jquery 移动 刷新      更新时间:2023-09-26

刷新JQUERY MOBILE页面时会发生什么
我使用ajax在page1上的一个名为"json"的变量中获取数据,当用户单击特定的动态生成的元素时,我将单击的元素的id存储在会话变量中,并将changePage()存储到新的JQMpage2中,在那里我使用json.thepropertyiwant生成列表,一切都很好,即使是后退和前进按钮也能完美工作,但如果我刷新page 2则CCD_ 3变为未定义,这是我得到的错误:

Uncaught TypeError: Cannot read property 'responseData' of undefined

我在单个html5页面模型中使用多页

编辑:

  • 我使用了变量名json,而不是JSON,我只是像这样键入它强调这一点,然而现在我认为这是愚蠢的
  • 我也解决了我的问题。我的错误是我认为页面刷新会为我所在的页面调用pageinit,但它有效与普通的html页面刷新和触发器没有什么不同每次CCD_ 7,然后是我所在页面的CCD_。
    有没有办法听pagerefresh事件并覆盖其正常功能

我相信您会在某些事件中生成page2的动态内容。我认为事件是pageinit或pagecreate。这些事件只触发一次(如果ajax页面加载设置为true)。发生的情况是,在加载page1时请求数据(类似于pageinit?)当您刷新page2时,数据不在那里,因为您请求数据的事件没有触发,这是完全正常的,因为当您刷新page2时,page1与它无关。发布代码中请求数据的部分,以及为page2生成动态内容的部分,了解更多信息。

嗯。。。这里有一些问题。

  • 对于初学者来说,不要使用名为"JSON"的变量。这不好——已经有一个名为JSON的全局对象用于解析和编码JSON!你可能会不小心覆盖它。

  • 正如您所发现的,如果您将数据存储在javascript中的变量中,那么该变量只在当前页面的内存中。如果刷新页面,则该变量将不再在内存中。

    但这实际上与jQuery Mobile无关。这就是web浏览器的工作方式——在内存中创建的javascript结构在页面刷新之间不会持久化。

    通常,您需要使用localStorage或cookie自己保存数据,以便在页面刷新之间保持数据。

  • 通常情况下,无论如何都不会刷新jQuery Mobile应用程序。因此,前一点通常不是太大的问题。用户刷新页面就像重新启动应用程序一样。

    应用程序应在开始重新加载所需的任何数据时,即。从localStorage,从cookie,或者对重新加载你必须在中编程该逻辑