刷新JQUERY MOBILE页面会发生什么?
我使用ajax来获取 page1 上名为“json”的变量中的数据,当用户单击特定的动态生成元素时,我将clicked元素的id存储在会话变量中,并changePage()
新的JQM page2 我使用json.thepropertyiwant
生成列表,一切正常,甚至后退和前进按钮也能正常工作,但是如果我刷新 page2
然后json.thepropertyiwant
变得未定义这是我得到的错误:
Uncaught TypeError: Cannot read property 'responseData' of undefined
我在单个html5页面模型中使用多页
修改
json
而不是JSON
我只是输入了它
要强调,但现在我认为这是愚蠢的!pageinit
,但它可以正常工作
与普通的html页面刷新和触发器没有什么不同
每次document.ready
,然后pageinit
查看我所在的页面。
pagerefresh
事件并覆盖其正常功能? 答案 0 :(得分:0)
我相信你会在某些事件中生成page2的动态内容。 我相信这个活动是pageinit或pagecreate。这些事件只触发一次(如果你将ajax页面加载设置为true)。 当你加载page1时你会请求数据(类似于pageinit?) 刷新page2时,数据不存在,因为您请求数据的事件没有触发,这是完全正常的,因为当您刷新page2时,page1与它无关。发布您请求数据的代码部分,以及为第2页生成动态内容的部分。
答案 1 :(得分:0)
嗯......这里有一些问题。
对于初学者,请勿使用名为“JSON”的变量。这不好 - 已经有一个名为JSON的全局对象,用于解析和编码JSON!你可能会意外地覆盖它。
正如您所发现的,如果您将数据存储在javascript中的变量中 - 该变量仅存储在当前页面的内存中。如果刷新页面,那么该变量将不再存在于内存中。
但这与jQuery Mobile无关。这就是Web浏览器的工作方式 - 在内存中创建的javascript结构不会在页面刷新之间保持不变。
通常,您需要使用localStorage或Cookie自行保存数据,以便在页面刷新之间保留数据。
通常,您不会刷新jQuery Mobile应用程序。所以前一点通常不是太大的问题。刷新页面的用户就像重新启动应用程序一样。
应用程序应该在它开始重新加载它需要的任何数据时,即 来自localStorage,来自cookies,或者进行一些新的ajax调用 重装。你必须在那里编写那个逻辑。