我正在尝试将一个相当简单的应用程序放在一起,而且我是jQuery Mobile的新手,所以我面临一个我需要输入的设计决策。
我的一些页面使用表单通过GET将数据传递到下一页。现在我正在使用jQuery Mobile修改应用程序,我发现我需要对每个应用程序应用'data-ajax =“false”',以便以传统的方式将数据传递给页面。这会阻止通过ajax加载下一页。
我对此感到满意,但我知道另一种选择 - 完全修改我现在的模型来容纳jQuery Mobile的ajax系统。我不愿意这样做,因为我需要花费更多的时间来弄清楚我有更多的时间重新实施。
所以问题是这样的:使用jQuery Mobile的数据传递系统重写我的应用程序作为单个DOM运行的优势是什么?有很多页面通过ajax加载?我为什么要关心或打扰?
(你能说我几乎不了解他们的表格系统是如何工作的吗?)
答案 0 :(得分:3)
“JQM方式”的一个优点是您永远不会离开第一页。
这样想: 您加载的第一个页面将是您的“锚页面”,其中所有其他页面将被添加/删除。只有当您转到data-rel =“external”或data-ajax =“false”的链接时,加载的新页面才会成为您的下一个锚点。
JQM需要这样做以启用转换(基本上它将新页面加载到现有DOM中,将其“下一步”放到当前页面然后将其滑过)。如果您在没有AJAX的情况下完全转到新页面,则无法获得动画。
对于您的示例,这可能意味着,无需在页面之间传递数据,因为您在JQM中从一个页面转到另一个页面时......您永远不会真正离开第一页。
我通常会将对象附加到$('html')或$(document),其中包含我在后续页面中需要的任何内容。
您甚至不需要提交任何内容,只需绑定到JQM event之类的
pagebeforehide
将在您离开某个页面之前触发。在函数处理程序中使用表单值填充对象,并在提交之前在最后一个表单页面上填充隐藏的输入,并使用之前页面中存储的表单值填充
pagebeforeshow
希望有所帮助。