1

Web サイトで JavaScript をログに記録したいと考えています。そのために、ログ機能を独自の実装で上書きしています。

サーバー側では、ログに Log4Net を使用しています。私の考えは、クライアント側でログをキャプチャし、ajax を使用してサーバーに送信することです。誰かがログを入力するたびに Ajax リクエストを送信したくありません。したがって、私の考えは、すべてのログをキャッチし、コールスタックが最初の場所に到達した後に 1 つのリクエストを送信することでした。

コールスタックが「終了」したことを検出するイベントまたは方法はありますか?

4

1 に答える 1

1

ユーザーがページを離れたときに、 javascriptbeforeunloadイベントを使用してログを送信することができます。jQuery を使用する場合、コードは次のようになります。

$(window).bind("beforeunload",function(event) {
    //... put your ajax code here ...

    return "The log has sent to server.";
});

ただし、beforeunload イベントは画面にメッセージ ボックスを表示します。

また、別の関数の実行後に関数を実行する場合は、次のように jQuery$.when()メソッドを使用できます。

$.when(functionOne(), functionTwo()).then(functionThree()).done(functionFour());

functionOne()、functionTwo()、functionThree()、および functionFour() は、遅延オブジェクトでなければなりません。 このブログでは、遅延オブジェクトの実装方法を簡単に説明しています。

于 2013-06-07T06:04:15.250 に答える