Javascript 如何使用phonegap在android中实现加载更多功能?

Javascript 如何使用phonegap在android中实现加载更多功能?,javascript,android,jquery,cordova,jquery-mobile,Javascript,Android,Jquery,Cordova,Jquery Mobile,我有一个应用程序,其中显示来自服务的项目。在这里,我有大约200个项目要展示,这是一些很难看到的东西 在这里,我想通过显示前20个来显示load more功能,单击load more将显示下20个,以此类推。我无法找到一种方法来实现这一点,如果有人有想法,请帮助我。虽然我不太熟悉Phonegap以及共享首选项,但一点研究工作让我知道,在Phonegap中没有直接的方法来使用共享首选项(就我所能搜索的范围而言) 如果您仍然希望在Phonegap中使用共享首选项,则需要为其添加插件 我能找到的另一

我有一个应用程序,其中显示来自服务的项目。在这里,我有大约200个项目要展示,这是一些很难看到的东西


在这里,我想通过显示前20个来显示load more功能,单击load more将显示下20个,以此类推。我无法找到一种方法来实现这一点,如果有人有想法,请帮助我。

虽然我不太熟悉Phonegap以及共享首选项,但一点研究工作让我知道,在Phonegap中没有直接的方法来使用共享首选项(就我所能搜索的范围而言)

  • 如果您仍然希望在Phonegap中使用共享首选项,则需要为其添加插件
  • 我能找到的另一种方法是使用
  • 另一种方法是使用Lawnchair实现数据库。你会找到一个好的解决方案,并且
  • 到目前为止,我发现的最有效的方法之一是。不知何故,它会很好地解决你的问题

对于phonegap/cordova来说,加载200个项目并存储它们不是一个好方法。我们正在谈论已经很慢的HTML5+JS包装器,这将使它变得更慢

更好的方法是使用ajax加载更多数据,当您到达listview端或单击“加载新内容”按钮时,将触发ajax调用

在这里,您可以找到一种使用“加载新内容”按钮的方法:

在这里,您将找到一种在到达listview末端时自动加载listview的方法:

http://jsfiddle.net/dhavaln/nVLZA/

此示例需要以下jQuery插件:

下面是我在commbination中自动加载listview和$.ajax的示例:

代码示例,我重复一下,这只是一个虚拟示例(仍在工作的虚拟示例):

//最初加载测试数据
对于(i=0;i<10;i++){
$(“#列表”)。追加($(“
  • ”); } $(“#列表”).listview(“刷新”); //到达底部时加载新数据 $('#footer')。航路点(函数(a,b){ //使用$.ajax加载一些动态数据 $.ajax({url:http://api.themoviedb.org/2.1/Movie.search/en/json/23afca60ebf72f8d88cdcae2c4f31866/The “傻瓜”, 数据类型:“jsonp”, jsonpCallback:“successCallback”, async:true, beforeSend:function(){ $.mobile.showPageLoadingMsg(true); }, 完成:函数(){ $.mobile.hidePageLoadingMsg(); }, 成功:功能(结果){ parseJSONP(结果); }, 错误:函数(请求、错误){ //警报('发生网络错误,请重试!'); } }); $(“#页脚”)。航路点({ 抵销:“100%” }); }, { 抵销:“100%” }); var ajax={ parseJSONP:函数(结果){ //var jsonObj=jQuery.parseJSON(参数); $(“#列表”).append(“
  • 电影名称:”+结果[0]。原始名称+”
  • ); $(“#列表”).append(“
  • 受欢迎程度:”+结果[0]。受欢迎程度+”
  • ); $(“#列表”).append(“
  • 评级:”+结果[0]。评级+”
  • ); $(“#列表”).append(“
  • 概述:”+结果[0]。概述+”
  • ); $(“#列表”).append(“
  • 已发布:”+结果[0]。已发布+”
  • ); $(“#列表”).listview(“刷新”); } }

    在最后一个$ajax调用结束之前,您还需要阻止另一个$ajax调用。

    如何将所有200个项目保存在设备中的某个位置(例如共享的首选项),但只显示其中的20个项目,并在用户希望时进一步加载。您好,谢谢您的回复,您能告诉我如何操作吗?
    // load test data initially
    for (i=0; i < 10; i++) {
        $("#list").append($("<li><a href=\"index.html\"><h3>" + i + "</h3><p>z</p></a></li>"));
    }
    $("#list").listview('refresh');
    
    
    // load new data when reached at bottom
    $('#footer').waypoint(function(a, b) {
        // Load some dynamic data with $.ajax
       $.ajax({url: "http://api.themoviedb.org/2.1/Movie.search/en/json/23afca60ebf72f8d88cdcae2c4f31866/The Goonies",
            dataType: "jsonp",
            jsonpCallback: 'successCallback',
            async: true,
            beforeSend: function() {
                $.mobile.showPageLoadingMsg(true);
            },
            complete: function() {
                $.mobile.hidePageLoadingMsg();
            },
            success: function (result) {
                ajax.parseJSONP(result);
            },
            error: function (request,error) {
                //alert('Network error has occurred please try again!');
            }
        });    
        $('#footer').waypoint({
            offset: '100%'
        });
    }, {
        offset: '100%'
    });
    
    var ajax = {  
        parseJSONP:function(result){
            //var jsonObj = jQuery.parseJSON(parameters);
            $("#list").append('<li>Movie name:<span> ' + result[0].original_name+ '</span></li>');
            $("#list").append('<li>Popularity:<span> ' + result[0].popularity + '</span></li>');
            $("#list").append('<li>Rating:<span> ' + result[0].rating+ '</span></li>');
            $("#list").append('<li>Overview:<span> ' + result[0].overview+ '</span></li>');
            $("#list").append('<li>Released:<span> ' + result[0].released+ '</span></li>');        
            $("#list").listview('refresh');
        }
    }