1

jQuery Mobile を使用して Web アプリケーションを作成し、CRM タイプのシステムを確認および更新しています。

モバイル アプリは and を使用して更新を送信しjQuery.getjQuery.postネットワーク接続が利用可能な場合は正常に動作します。

jQuery.getネットワーク接続が利用できない場合に呼び出しをキューに入れるには、どのようにコーディングすればよいか、または何を使用して、jQuery.post再び利用可能になったときに送信されるようにすることができますか。

4

1 に答える 1

1

編集:ああ、うん、私はあなたが「jQuery Mobile」と言ったことに気づきました、私は最初にそれをmobilelolのjqueryとして読みました。うーん、これはおそらくjQMが通常のjqueryと同じようにajaxをサポートしている場合にのみ機能します

二次的なajaxリクエストを考えましたが、それは必要ありません。このようにAJAXを設定し、タイムアウトを設定するだけです。サーバーが応答するのに4秒以上かかる場合(ブロードバンド接続には十分ですが、一部の電話では10〜15秒かかる場合があります)、再試行制限までajaxリクエストを再試行します。これを設定できます。 50回が経過した後も後で変更されます(つまり、プログラムがアイドル状態でデータがない場合に送信する必要がありますか?)。接続すると、成功関数に移動し、サーバーにデータが送信されます。

したがって、次のようになります。

  $.ajax({
    type: 'GET',
    timeout: 4000,
    tryCount : 0,
    retryLimit: 50,
    success:function(data) {
            sendSavedData();
    }
    error: function(xhr, textStatus, errorThrown) {
      if(textStatus == 'timeout') {
          this.tryCount++;
          if(this.tryCount <= this.retryLimit) {
            $.ajax(this);
            return;
          }
          var check = confirm('We have tried ' + this.retryLimit + ' times to do this and the server has not responded. Do you want to try again?');
          if(check) {
            this.timeout = 200000;
            $.ajax(this);
            return;
          } else {
            return;
          }
      }
    }
  });
于 2011-09-01T12:25:13.363 に答える