2010-02-23 2 views
0

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

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

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

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

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

спасибо.

ответ

0

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

загрузки файлов HTTP Server

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

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

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

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

  • OnExit
  • OnClose
  • ONBLUR (когда они щелкают где-нибудь еще)

Проверьте этот пример: Javascript onclose: Warn the User.

Надежда, что помогает, Lance

+0

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

Смежные вопросы