1

だから私はユーザーがブラウザを閉じたときにいくつかのファイルを削除したいと思います。

私はpage_unload以下に示す方法を使用しています:

   protected override void OnUnload(EventArgs e)
    {
        base.OnUnload(e);
        string[] uploadedFiles = Directory.GetFiles(Server.MapPath("~/testPdfIn"));
        foreach (string uploaded in uploadedFiles)
        {
            File.Delete(uploaded);
        }
    }

ただし、このpage_unloadメソッドはページの読み込み直後に起動し、ユーザーがブラウザを閉じなくてもフォルダ内のファイルを削除します。

page_unloadロード直後に起動し、ユーザーがブラウザを閉じたときにのみ起動するのを停止する方法はありますか?

4

4 に答える 4

1

ブラウザのクローズイベントを検出し、ajaxを使用してサーバー側の関数を呼び出すよりも優れています

<script type="text/javascript">
$(function () {
    $(window).unload(function () {

   jQuery.ajax({ url: "http://localhost:49591/filedelete.aspx", async: false });
      });
});
</script>
于 2012-05-09T17:43:32.370 に答える
1

これがどのように機能するかです。ページのアンロードで何かを実行したい場合は、window.onbeforeunloadを使用してください。

于 2012-05-09T17:37:51.557 に答える
1

Page.Unloadあなたがそれが機能すると思うように機能しません。 ブラウザを閉じたときではなく、ライフサイクルPage.Unloadの最後に発生します。Page

Unloadイベントは、ページが完全にレンダリングされ、クライアントに送信され、破棄する準備ができた後に発生します。この時点で、ResponseやRequestなどのページプロパティがアンロードされ、クリーンアップが実行されます。

コードビハインドメソッドはサーバー側であり、ブラウザが閉じられているのはクライアント側のイベントです。

于 2012-05-09T17:40:09.443 に答える
0

Page_Unloadブラウザを閉じることとは何の関係もありません。すべてのページ要素/ページが完全にロードされると、アンロードイベントが発生します。

あなたはあなたのファイル削除コードをsession_endglobal.asaxファイルに入れることを検討するべきです

于 2012-05-09T17:38:27.393 に答える