【问题标题】:which is better way to load page content in jQuery mobile and Phonegap?在 jQuery mobile 和 Phonegap 中加载页面内容的更好方法是什么?
【发布时间】:2011-07-22 16:46:48
【问题描述】:

我正在使用 jQuery mobile 和 Phonegap 构建 iOS 应用程序。 我建立网站并在 PC 浏览器中进行测试,所以我将后端代码(使用 Ruby)放在 html 文件中,所以当 jQuery 加载页面(使用 $.mobile.changePage())时,数据将从服务器获取并呈现模板文件。(服务器上的所有文件)。

但是当我将代码放入 Phonegap 时,index.html 文件现在会在本地,我获取服务器端数据的唯一方法是发出 AJAX 请求来获取 json 并插入到页面?或任何其他方式表现更好?

jquery mobile 使用 $.mobile.changePage() 使用 AJAX 请求更改页面,所以如果我确实请求获取数据,这里的 $.mobile.changePage() 函数只进行转换,因为其中没有为我加载任何数据。

【问题讨论】:

    标签: jquery-mobile cordova mobile-safari


    【解决方案1】:

    Ajax 请求是加载远程内容的好方法。如果您想在显示页面时加载内容,请执行以下操作:

    $(document).delegate('[data-role="page"]', 'pageshow', function () {
        $.get('http://domain.com/path_to_script.php?id=blah', function (data) {
            $(this).children('[data-role="content"]').html(data);
        });
    });
    

    注意:此示例期望非本地脚本将输出准备好插入 dom 的 html。您可以接收任何类型的数据并根据需要进行解析; data 变量返回来自 ajax 请求的响应。

    【讨论】:

    • "this" 是 jquery mobile 的全部意义所在。 但是it's hilarious to see them trying to use big, bold letters in the documentation 将这些想法敲给困惑的群众......当他们甚至没有得到它!哈!不,但实际上,这很重要,而且令人困惑。你的回答对我说......“你明白了”。不过,您还有什么可以添加的吗?我仍然对如何从服务器加载完整的<div id="blah2" data-role="page"...</div> 片段感到困惑,就像从“页面”上的另一个div 加载一样。
    • @alexgray 您可以将.append()data-role="page" 元素及其内容传递给body 元素。然后,如果您使用“click”事件处理程序使用$.mobile.changePage() 函数将用户引导到新页面,jQuery Mobile 框架将初始化并转换到新的data-role="page" 元素。这是一个 jsfiddle 演示:jsfiddle.net/nbpdy/1
    猜你喜欢
    • 2014-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 2015-10-19
    • 1970-01-01
    • 2015-03-19
    相关资源
    最近更新 更多