4

这真是令人沮丧..!

当使用带有预定义页面的 jQuery Mobile 时,一切都很顺利和容易,但是更复杂的项目呢?

我正在开发一个基于先前答案呈现下一页的调查系统。因此,每个页面都必须将当前问题提交给外部 API 并获取下一个问题。

我的第一选择是在 JS 上大放异彩,但它的主要问题是数据必须通过 AJAX 发送,然后注入新的结构化 HTML 必须“刷新”才能很好地呈现。除此之外,所有 AJAX 请求都必须有它们的回调,因为它会创建一个混乱的代码。因此,在我的案例中,一项包含 20-30 个问题的调查由 15 种不同类型的表单组成,其中大量使用了回调和嵌套回调。

然后我以 PHP 为基础重写了项目。使用一个“data-role=page”实例提交到同一页面的表单(包含调查问题)。通过 CURL 请求,我发送了答案并得到了下一个问题,生成了 HTML 结构,瞧——这一切都呈现得很漂亮,无需触发刷新。

但是使用这种方法有其自身的问题:

  • 提交到同一页面会使您无法进行页面转换 ,并为您留下默认的淡入淡出转换。
  • jQuery mobile 有这种奇怪的缓存(即使在我使用了所有方法来禁用它之后)
  • 将数据从页面传递到页面很棘手 - GET 有长度限制
    ,并且 POST 不适合我的需要,因为实际的 CURL 请求必须提交“param1=val1&..”)

那么,在处理复杂且动态的项目时,使用 jQuery Mobile 的最佳方式是什么?

谢谢,

4

1 回答 1

0

恕我直言(我自己来自 PHP 和 jQM)我采用了使用由 PHP 提供服务的 JSON 然后用 jQM 解析的方法。

我的方法是创建登录页面(将具有动态内容的页面)框架​​以保存所需的功能,如导航、徽标、页眉、页脚等......并让 jQM 使用从 PHP 发送的 JSON 更新页面内容回复。

您还可以将它与 localstorage 与 storage.js 配对

现在我也似乎(但尚未使用)一些关于使用模板引擎(如 Handlebars)的信息,这里有一些我发现可能有趣的链接:

于 2012-06-20T00:59:07.030 回答