2012-05-02 4 views
1

私は次のコードを持っている:Chromeでunbeforeunloadのバグを修正するにはどうすればよいですか?

window.onbeforeunload = function() { 


       $.post(
        'script/ratings.php', 
        { 
        data: dataToServer, 
        slider: slider_position_value, 
        article: ARTICLE_NAME 
        }, 
         function(data) { 

        }); 

}; 

IEとMozillaの中で完璧に動作します。 oourseのうち、このイベントが原因でChromeのバグが表示されないことを知っています。このイベントをキャッチしてPOSTリクエストを作成するためのレシピが必要です。おかげさまで

答えて

1

beforeunloadイベントは、がChromeで動作します。ただし、ページを離れると、AJAXを含むすべてのリクエストはキャンセルされます。

現在のコードを動作させるには、async:falsejQuery.ajaxセットアップに追加して同期要求を使用します。 これは、応答がで受信されるまでUIをブロックし、推奨されません。

+0

はい、私は問題は正確ではありませんでした。ありがとう。私は事前にAJAX-requestinを作成する必要があります。 –

+0

@Eugeneその意図は明らかでした。私は私の答えに解決策を加えました。タブをブロックするので、私はそれの使用をお勧めしません。より良い方法は、レーティングを定期的に保存すること、またはボタンをクリックすることです。 –

+0

Yeeeh、ありがとう、それは動作します。私はサーバーからバイトのカップルだけを得るので、遅延は正常です。 –