Как остановить загрузку страницы после отправки запроса? - PullRequest
1 голос
/ 30 июля 2010

У меня есть страница ASP.NET (C #), которая долго загружается (например, 2 минуты).Пользователю предоставляется небольшая анимация и сообщение «пожалуйста, подождите».Если пользователь случайно загружает эту страницу, ему нужно подождать, пока она загрузится.

Мой вопрос: есть ли способ остановить загрузку страницы?

Спасибо

Ответы [ 2 ]

4 голосов
/ 30 июля 2010

Если вы хотите остановить обработку на стороне сервера, то это сложная операция. Как правило, после того, как сделан запрос, эта страница отображается независимо от других событий. Что вам, вероятно, понадобится сделать, - это перепроектировать эту страницу, чтобы через регулярные промежутки времени проверять, была ли введена команда останова, и отменить все, что она делает в этот момент. Флаг остановки может быть установлен в сеансе и должен быть очищен после остановки.

Вам также может понадобиться подумать о том, как правильно определить, кого нужно остановить (в случае, если работает более одного). Это можно сделать, вернув уникальный идентификатор, который можно использовать при вызове, на страницу «abort».

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

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

0 голосов
/ 30 июля 2010

Попробуйте window.stop() в JavaScript.

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