0

アプリケーションの読み込みが完了したら、タブ パネルを表示しています。デフォルトの最初のタブ (タブ パネルの最初の項目) が画面に表示されます。

        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);
4

1 に答える 1

1

あなたは2つのことをすることができます
1.タブパネルをビューポートに追加するコードに遅延を追加します

Ext.defer(function(){ 
    Ext.Viewport.add({
      xtype : 'myTab'
    });
}, 500, this);

2. 成功ハンドラ関数に mytab を追加

var onSuccess = function(position) {
    /* All the existing code*/
    Ext.Viewport.add({
        xtype : 'myTab'
    });
}
于 2013-01-01T05:16:16.543 に答える