2010-11-18 4 views
0

これは私のコードです。私がやっていることは、ユーザーがページを離れるときにio_up.phpファイルを処理することです。また、ファイルが処理されてから3秒間ページロードを一時停止することができれば嬉しいです。ユーザーがページを終了したときにファイルを処理しますか?

<script type="text/javascript"> 
function setConfirmUnload(on) { 
    Window.onbeforeunload = (on) ? unloadMessage : null; 
} 

function unloadMessage() { 

    $.ajax({ 
     async: true, 
     url: "/proc_files/io_up.php", 
     success: function(msg){ 
     alert("Data Saved."); 
     } 
    }); 

} 
</script> 
+0

何が問題なのですか?本当ですか、あなたのコードは動作していますか?私は、リクエストを行うためにウィンドウonunloadを開くという古いトリックが良い理由があると思う(おそらく、ウィンドウ/ページが閉じるとおそらくajaxが中止される) – AndreKR

答えて

2

コードをasyncではなくsynchronousに変更します。ユーザーのブラウザをハングアップしようとしていることを忘れないでください。

このコードは、ユーザーがページを離れてリフレッシュしたり、リンクをクリックしたりするときに呼び出されます。これは本当に欲しいものですか?

これは、サーバー上のセッションでこれを処理し、クライアントに依存しないようにする必要があります。ブラウザのエラー、コンピュータをスリープ状態にする人、ネットワークエラーなどは、処理コードを実行することはありません。

+0

セッションでロードされるファイルio_up.phpをどうやって起動するのだろうか? – acctman

関連する問題