1

リモートサーバーに保存されているデータを表示する Phonegap ベースのアプリを開発しています。エラーが発生して初めてデータを取得できなかった場合に備えて、特定の時間ごとにデータを更新するにはどうすればよいですか?

これはlist.jsです

 $(document).ready(function(){
    
    var output = $('#vehiculosOutput');

    $.ajax({
        url: 'http://www.periodicosonofertas.com/mobile/conexVehiculos.php',
        dataType: 'jsonp',
        jsonp: 'jsoncallback',
        timeout: 5000,
        success: function(data, status){
            $.each(data, function(i,item){
                var landmark = '<li>'+item.name + '<p></p>'
                + '<p><font style="white-space:normal; font-size: small" >'+item.descripcion+'</p>' + '<p>'+item.contacto+'</p>' + '<p>'+item.telefono+'</p>' + '<p>'+item.correo+'</p><p>'+status+'</p></li>';

                output.append(landmark);
            });
        },
        error: function(){
            output.text('Error');
            //setTimeout(func.updateStatus, 1000);
        }
    });
    
});
4

2 に答える 2

4

これにはロングポーリングを使用できます。聞いたことがない場合は、ここから始めるとよいでしょう。エラーの場合にのみリクエストを再送信する必要がある場合は、次のスニペットが機能します。

(function poll(delay){
        setTimeout(function(){

          $.ajax({ 
                    url: "http://127.0.0.1:8000/time/",                         
                    success: function(data){
                            $('#requiredDivId').text(data.value);
                    },
                    error: function(data){
                        //Recursive **Poll**
                        poll(30000);
                    },                  
                    dataType: "json"
                });
      }, delay);
})(0);
于 2013-04-25T07:11:54.633 に答える
0

コメントで言及した特定の機能を使いたい場合は、phonegap にnetwork.isReachableという名前の関数があります (詳細については、こちらを参照してください)。settimeout 関数内で接続がオンになっているかどうかを確認するためにその関数を配置できます。 true の場合は、関数を実行してデータをサーバーに送信できます。

お役に立てば幸いです

于 2013-04-26T05:45:58.187 に答える