Phonegap和AJAX性能不佳

时间:2014-07-07 05:39:24

标签: ajax cordova

我正在使用异步AJAX调用将数据加载到我的应用程序。由于服务器速度很慢,此调用需要一些时间。将应用程序加载到桌面或手机上作为网站显示预期的行为:页面加载 - 一些延迟 - 加载数据的站点更新。使用phonegap执行页面显示启动画面,而不是黑屏,并且在很长时间(执行ajax调用的时间)之后显示正常屏幕。我假设Phonegap在显示内容之前等待呼叫完成的任何原因。可以预防/配置吗?

代码示例:

function connect(){
    var username = window.localStorage.getItem( 'username' );
    var password = window.localStorage.getItem( 'password' );
    if(username!=null&&password!=null){
    jQuery.ajax({
            async: true,
            type : "GET",
            dataType: 'json',
            url : loginURL,
            success : function(data) {

                token=data.token;


                connected=true;
                oSettingsTile.setInfo("Connected");
                oSettingsTile.setInfoState(sap.ui.core.ValueState.Success);

                var oFeedModel=new sap.ui.model.json.JSONModel();

                jQuery.ajax({
                type : "GET",

                url : feedURL,
                dataType : "json",
                async: true,
                success : function(data,textStatus, jqXHR) {


                  oFeedModel.setData(data); 
                  oFeedTile.setInfoState(sap.ui.core.ValueState.None);
                  oFeedTile.setNumber(oFeedModel.getProperty("/list/length"));

                },
                error : function(err){
                  oFeedTile.setInfo("Error loading");
                  oFeedTile.setInfoState(sap.ui.core.ValueState.Error);
                }

                });

                var oGroupModel=new sap.ui.model.json.JSONModel();
                jQuery.ajax({
                type : "GET",
               url : groupURL,
                dataType : "json",
                async: true,
                success : function(data,textStatus, jqXHR) {
                  oGroupModel.setData(data); 
                  oGroupTile.setInfoState(sap.ui.core.ValueState.None);
                  oGroupTile.setNumber(oGroupModel.getProperty("/list/length"));

                },
                error : function(err){
                  oGroupTile.setInfo("Error loading");
                  oGroupTile.setInfoState(sap.ui.core.ValueState.Error);
                }

                });

                feedView.setModel(oFeedModel);
                feedDetailView.setModel(oFeedModel);

                groupView.setModel(oGroupModel);
                groupDetailView.setModel(oGroupModel);


            },
            error : function(err,status,errT){
              token="";
              oGroupTile.setNumber(0);
              oFeedTile.setNumber(0);
              connected=false;
              oSettingsTile.setInfo("Error");     
              oSettingsTile.setInfo(sap.ui.core.ValueState.Error);

            }

        });
    }

}

1 个答案:

答案 0 :(得分:0)

您可能会想,在启动启动画面时正在加载该页面,但事实并非如此。在启动画面消失后加载整个html / css / js,因此如果你的服务器速度慢,它会持续一段时间直到你看到内容。