【发布时间】:2014-07-07 05:39:24
【问题描述】:
我正在使用异步 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);
}
});
}
}
【问题讨论】:
-
我评论了ajax加载部分:jQuery.ajax({ type : "GET", dataType: 'json', url : "...", success : function(data) { ... . 现在加载是在 1 秒内。所以它是 Phonegap 正在等待的 ajax 调用