アプリケーションの読み込みが完了したら、タブ パネルを表示しています。デフォルトの最初のタブ (タブ パネルの最初の項目) が画面に表示されます。
Ext.Viewport.add({
xtype : 'myTab'
});
タブ パネルが読み込まれると、緯度と経度に基づいて最初のタブに一連のメッセージが表示されます。
コントローラーのinitメソッドでphonegapを使用して緯度と経度を取得しています。コントローラーのinitメソッドは、他の何よりも先に最初に呼び出されます。
最初のタブ ペインティング時に、緯度と経度をパラメータとしてサーバーに ajax リクエストを送信しています。
私の問題は、電話ギャップが緯度と経度を与えるのに時間がかかることです。緯度と経度を取得する前に、私のビューは苦痛であり、ajaxリクエストが発生しています。
そのため、ajaxリクエストで緯度と経度をパラメーターとして送信できません。
タブパネルの痛みをしばらく遅らせるにはどうすればよいですか?
これは、緯度と経度を取得するための電話ギャップ コードです (コントローラーの初期化メソッドで)。
var gotLocation = false;
var GEO_OPTS = {
enableHighAccuracy : true,
maximumAge : 120000,
timeout : 6000
};
var onSuccess = function(position) {
if (gotLocation)
return;
console.log('inside onsuccess');
if (position.coords.accuracy <= 1000) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
console.log('Got location at end');
gotLocation = true;
// proceed to fetch messages
var radius = localStorage.radius ? localStorage.radius : 5;
console.log('radius :' + radius);
var unit = localStorage.unit ? localStorage.unit : "M";
var rangeText = ' ' + radius;
if (unit == 'M')
rangeText = rangeText + ' mi';
else
rangeText = rangeText + ' km';
var listCaption = 'All wants within' + rangeText;
localStorage.latitude = lat;
localStorage.longitude = lon;
localStorage.radius = radius;
localStorage.unit = unit;
localStorage.rangeText = rangeText;
localStorage.listCation = listCaption;
console.log('Range Text:' + rangeText);
console.log('list Caption:' + listCaption);
}
};
var onError = function (error) {
navigator.notification
.alert("oops..." + error.code + error.message);
};
navigator.geolocation.getCurrentPosition(onSuccess, onError, GEO_OPTS);