Как я могу вызвать метод сервера, когда пользователь закрывает страницу - PullRequest
1 голос
/ 04 января 2011

Я хочу удалить временный файл с сервера после того, как пользователь закроет страницу (я предполагал, что у меня нет этого обратного вызова на сервере по умолчанию),

Я пытался вызвать метод на стороне сервераиспользование (ICallbackEventHandler реализация), когда пользователь закрывает страницу, но проблема в том, что метод на стороне сервера не запускается в этом случае (закрытие страницы), он только отвечает, если страница все еще открыта.и я не предпочитаю прекратить закрывать страницу до тех пор, пока сервер не ответит, и отослать свой обратный вызов, чтобы закрыть страницу вручную.

В случае, если я должен прекратить закрывать страницу, пожалуйста, помогите мне наилучшим образом.1006 *

Заранее спасибо

Ответы [ 3 ]

4 голосов
/ 04 января 2011

Вы не можете точно знать, когда пользователь закрывает страницу.

Лучшее, чего вы можете достичь, это использовать событие JS onunload и отправить туда запрос AJAX:

<body onunload="SendRequest();">

И JavaScript: (jQuery - самый простой способ)

function SendRequest()
{
    var sURL = "http://localhost/Log.aspx?action=unload&t=" + (new Date()).getTime();
    $.ajax({ url: sURL });
}

Это событие будет вызываться всякий раз, когда пользователь уходит со страницы: F5, Назад, Вперед, нажатие на ссылку, отправка формы и т. Д. Вы можете улучшить код, чтобы игнорировать случаи, например щелчок чего-либо на странице, дайте мне знать если уместно и я отредактирую с правильным кодом.

3 голосов
/ 04 января 2011

Я думаю, что было бы более разумно удалить файл через некоторое время, скажем, 24 часа, на основе недавно полученного доступа. То есть все файлы, которые не были затронуты в течение 24 часов, удаляются.

В качестве альтернативы, вы можете опрашивать с помощью AJAX, и как только вы не получите запрос с токеном идентификации пользователя в течение некоторого времени, задающего интервал опроса, удалите соответствующий файл.

0 голосов
/ 04 января 2011

В аналогичной ситуации в моей первой работе я оставил копию на сервере и всякий раз, когда этот временный каталог вызывался снова с этой страницы, я удалял любые файлы старше 72 часов. Не очень хорошо, но был принят в такой ситуации.

Если вам нужно удалить его на сервере, когда вы знаете, что пользователю это больше не нужно, вы можете использовать прослушиватель сеанса, см. этот вопрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...