0

我正在制作一个 phonegap/jQuery-Mobile 应用程序。我从 Google 图书 API 动态填充列表,深化用户输入,例如作者姓名或书名。如果用户单击其中一个列表项,那么应该会出现一个新页面,其中包含书籍详细信息以及有关该书籍的更多选项。

列表视图是包含缩略图和链接(到详细页面)的列表视图。我的问题是,我是否应该生成一个动态页面,并按照这里所说的那样附加到容器中。

或者我应该制作一个页面模板,并且每次用户点击其中一个项目时,应该使用该页面吗?

欢迎任何代码或概念想法...

4

2 回答 2

1

我认为您应该创建一个模板页面,并在其上加载内容。您使用 ajax 请求来获取您需要的所有信息并将其放入您的模板中。

每次您触摸一个链接时,您都会继续,例如,template.html。您也将拥有 template.js。在 template.js 上,您发出一个 ajax 请求,然后解析响应以将例如标题放在正确的位置。这是 responseXML 的示例

if (xmlHttpRequest.responseXML)
    {
        var title = $(xmlHttpRequest.responseXML).find("title");
        $(title).html(title);
    }

希望这对你有帮助;)

于 2013-05-31T09:31:35.887 回答
1

这是一个复杂的问题,它取决于更多的一个因素。通常我会建议您动态创建所有内容,但 Phonegap 是不同的。

jQuery Mobile 是为在许多不同的 HTML5 平台上工作而创建的,无论是桌面浏览器还是手机浏览器。你读过的文章就是在这个基础上写的。不幸的是,jQuery Mobile 没有针对手机执行进行优化,这是我们的第一个问题。虽然整页创建/重新创建在桌面浏览器上可以正常工作,但在移动浏览器上情况完全不同。手机执行 jQuery 比桌面浏览器慢 10-20 倍,更不用说 Phonegap 会更慢。

当页面被动态创建时,它的过程大约为 650 毫秒,即便如此,这也是基于轻页面的基准。您想要创建的是每次用户想要搜索某些内容时在新页面内动态创建的列表视图。这样做需要时间,而且你的应用程序将失去可用性,更不用说用户对这个应用程序的体验远非本机体验。

这就是为什么在使用 jQuery Mobile 和 Phonegap 或仅在移动浏览器中使用 jQuery Mobile 时总是需要使用模板的原因。

我有一篇文章需要在 jQuery Mobile 应用程序中创建动态内容,所以请看这里

让我们更进一步,然后您的问题,如果您决定使用您需要限制页面内容的模板。从 Google 服务获取数据时,我建议仅显示前 50 个结果。超过这个时间,用户将需要等待超过 1-2 秒才能显示数据。我什至会更进一步,实施分页系统。

基本上现在一切都取决于你是要使用一些模板引擎还是自己做。我建议您对此进行测试。正如我告诉你的,Phonegap 和 jQuery Mobile 是一个缓慢的组合,你需要找到一个最适合你的应用程序的解决方案,所以如果手动页面创建比某些模板引擎更快,请不要感到惊讶。

于 2013-05-31T09:53:14.067 回答