2012-02-23 8 views
0

これはどのように動作するのかを説明するために最善を尽くします。これはモバイルのため、Jqueryモバイルを使用しています。JqueryのchangPage関数はキャッシングリクエストを停止しません

1)ユーザーは、DOMページではまだ外に持ち出されたアイテムのリストから選択します。

2)ユーザーは、まだDOM内にない別の外部ページにフォームをポストします。

3)このページでは、このコードを使用して2秒ごとにdivを更新します。私たちが最後に送信した要素のステータスを取得します(約15秒でususally終了します)。最終ステータスメッセージは、我々はリフレッシュし、ポイント1)の要素(の最初のセットにある要素にそれらを取るしたい達すると

<script> 
$('#status').empty();  
setInterval(function() { 
$('#status').load('/call/status/<?php echo $call->sid?>'); 
}, 2000); 
</script> 

4)。私はこのコードを最後のメッセージとして使用して、ページ変更イベントを最初のページセットに戻します。

<script>$.mobile.changePage("#inbox",{transition:"slideup"}); </script> 

奇妙なことは、これが初めてです。このプロセスに戻っても、元の#status divがまだキャッシュされていて、早期に#inputに戻そうとします。

ご覧のとおり、私は$( '#status')を持っています。それは次の回に来るときにこのdivは既に破壊されるべきですか?

ありがとうございます!

+1

$( "#status")。empty()は区間の内側にありませんか?私はあなたのスクリプトがどのように設定されているかわからないので、そうではないかもしれません。 –

+0

これを行うと、#status divが不快に点滅します。私はそれが違いを生むべきだとは思わない。しかし、私は本当に専門家ではありません。 –

+0

これは、これを行うのが良い方法ではないという理由です。多くのサーバー呼び出し。 –

答えて

0

私の推奨コードですが、これはコンテナを空にしません。これはあなたの初期の問題を解決することはありませんが、私はあなたがそれがよりスムーズに動作すると思うでしょう。これにより、以前の要求が完了する前にサーバーに要求を送信していないことが保証されます。これは、setIntervalは要求が完了したかどうかを認識しません。私はお勧めします(あなたはいつでも実際にいつでもサーバ呼び出しを行うつもりですが、SetIntervalは良い方法ではありません)。

function status(){ 

    $('#status').load('/call/status/<?php echo $call->sid?>', function(){ 
    //this is to be performed on success of the load 
    setTimeout(status, 2000); 
    }); 

} 
setTimeout(status, 2000); 

最初の問題のトラブルシューティングを試みてもうれしいですが、動作の仕組みを理解するためには詳細が必要です。

関連する問題