URLLoader отменяет загрузку при любом событии браузера - PullRequest
0 голосов
/ 23 февраля 2010

У меня есть флэш-элемент на странице, который загружает диаграмму на основе некоторых сложных запросов, загрузка которых может занять до минуты. Я вызываю запрос с этим кодом:

var chartData:URLLoader = new URLLoader();
chartData.addEventListener(Event.COMPLETE, onLoaded);
chartData.addEventListener("httpStatus", onHttpStatus);
chartData.load(new URLRequest(chartURL));

Я слушаю полное событие или любое событие ошибки сервера.

Моя проблема заключается в том, что пользователь хочет перейти на другую страницу, пока флэш-память загружает URL-адрес: браузер ожидает полной загрузки URL-адреса, прежде чем принять запрос пользователя. Как я уже сказал, загрузка этого графика может занять до минуты, и это несколько раздражает моих пользователей, ожидающих смены страницы.

Вот мой вопрос: существует ли событие для прослушивания какого-либо события из браузера (нажмите на другую ссылку, нажмите кнопку «назад» в браузере ...)? Если я ошибаюсь в своем способе сделать это, не стесняйтесь сказать мне, я не очень привык программировать на флэш-памяти.

Спасибо.

1 Ответ

0 голосов
/ 24 февраля 2010

Мне кажется, я понимаю, что вы описываете. Некоторые вещи, которые вы можете попробовать:

Загрузка файла HTTP-сервер

Если файлы очень большие, вы можете загрузить их на другой HTTP-сервер, например, Nginx. Проверьте Модуль загрузки Nginx (я уверен, что Apache имеет то же самое). Это в основном позволяет загружать файлы, не заставляя пользователя чувствовать влияние вообще.

Единственная проблема в том, что это довольно сложно, и вы не будете знать, когда закончится загрузка файла. Но у них есть примеры того, как показать Загрузка индикаторов прогресса с Nginx с использованием Javascript , так что вы можете сделать что-то подобное, и по завершении (в javascript) отправить на флэш-сообщение сообщение, которое вызывает что-то вроде вашего Event.COMPLETE обработчик.

События браузера

Существуют события браузера, которые необходимо перехватить с помощью Javascript, чтобы пользователь не мог покинуть страницу до завершения загрузки (не рекомендуется, так как это может раздражать пользователя):

  • OnExit
  • OnClose
  • onblur (когда они щелкают где-то еще)

Посмотрите этот пример: Javascript onclose: предупредить пользователя .

Надеюсь, это поможет, Lance

...