2013-07-24 41 views
-2

一个jQuery Mobile的页面刷新时会发生什么事会发生什么?
我使用Ajax在一个叫做“JSON”上1页变量,数据取出时用户点击特定动态生成的元件,我点击元素的id存储在会话变量和changePage()到一个新的JQM 第2页在这里我使用json.thepropertyiwant生成一个列表,一切正常,甚至是前进和后退按钮完美地工作但是如果我刷新第2页 然后json.thepropertyiwant变得不确定这里的错误我得到:当我刷新一个jQuery Mobile的页面

Uncaught TypeError: Cannot read property 'responseData' of undefined 

我使用的是多页单一HTML5页面模型

编辑:

  • 我已经使用变量名json,而不是JSON我刚键入它像 ,要强调的是,不过现在我认为那是愚蠢的!
  • 我也想到了我的问题。我的错误是,我是假设 刷新页面会叫pageinit为我上​​的页面,但它的工作原理 无异于一个普通的HTML页面刷新,并触发每次 document.ready,然后我对页面pageinit
    有没有听 pagerefresh事件,并覆盖其正常功能的方法是什么?
+1

给你一些代码,你使用 – Amol

回答

0

我相信你在某些事件中生成page2的动态内容。 我相信事件是pageinit或pagecreate。这些事件只会触发一次(如果您的Ajax页面加载设置为true)。 什么情况是,你所要求的数据,当您加载第1页(像pageinit?) 当刷新第二页,该数据是不存在的,因为你要求的,不点火,这是完全正常的数据的情况下,因为当刷新page2时,page1与它无关。在请求数据的地方张贴您的代码部分,以及为page2生成动态内容的部分以获取更多信息。

+0

是的,我想通了,我有这样的编辑实现感谢任何方式! – Shasak

+0

我很好奇,有没有办法来重写pagerefresh事件功能? – Shasak

+0

你想防止刷新我想? – alkis

0

嗯......有没有搞错的几个问题。

  • 对于初学者,请勿使用名为'JSON'的变量。这并不好 - 已经有一个名为JSON的全局对象,用于解析和编码JSON!你可能会意外覆盖它。

  • 当你发现,如果你在存储在JavaScript中的变量数据 - 即变量只在内存中当前页面。如果刷新页面,那么该变量将不再存储在内存中。

    但是,这不是真的任何与jQuery Mobile的。这就是Web浏览器的工作原理 - 在内存中创建的JavaScript结构不会在页面刷新之间持久化。

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

  • 通常,您不会刷新jQuery Mobile应用程序。所以以前的观点通常不是太多的问题。用户刷新页面就像重新启动应用程序。

    的应用程序应该在启动时从localStorage的重新加载任何需要的数据,即 ,从饼干,或做一些新的Ajax调用 重装。你将不得不编程该逻辑英寸

+0

你的答案帮助!谢谢! – Shasak