1

私のアプリケーションは、ユーザーのオンライン/オフライン状態を設定できることに依存しています。

window.onbeforeunload を使用して、ユーザーがいつページを離れたかを確認することで、これを解決しました。

問題は、以下のコードが常に実行されるとは限らないため、一部の人がページを離れたときにまだオンラインであると言っているということです.

これは私の現在のコードです:

window.onbeforeunload = function (event) {
    $.ajax({
        type: 'GET',
        url: './changeStatus.php?cid=' + ccID + '&status=0',
        contentType: "application/json",
        dataType: 'json',
        cache: false,
        async: false,
        success: function (data) {},
        error: function (e) {
            //console.log(e);
        }
    });
    return;
};

これを常に強制的に実行する方法はありますか? (すべてのブラウザで)

4

1 に答える 1

0

スクリプトはおそらく、ページが閉じられるときに常に実行されますが、サーバーの呼び出しが常に成功するとは限りません。

たとえば、ユーザーがページを閉じる前にインターネット接続を切断した場合、スクリプトはサーバーに何も送信できません。ページが閉じられるたびにブラウザーからの呼び出しに頼ることはできません。

ユーザーが最後に聞いたときをサーバー上で追跡できるため、ユーザーがしばらくページを要求していないときにユーザーをオフラインとして設定できます。もう 1 つの方法は、ユーザーがページにいる間はサーバーにリクエストを頻繁に送信することです。リクエストが来なくなると、サーバーはユーザーが離れたことを認識します。

于 2013-02-10T22:30:22.020 に答える