2010-02-23 55 views
0

我有一個基於一些複雜的查詢,可能需要長達一分鐘加載圖表加載圖表的Flash元素。我用以下代碼調用查詢:URLLoader取消任何瀏覽器事件的負載

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

我監聽整個事件或任何服務器錯誤事件。

我的問題是,當用戶想要在另一個頁面上,而Flash正在加載URL:瀏覽器正在等待url完全加載之前接受用戶的請求。正如我所說,這個圖表可能需要一分鐘才能加載,如果用戶想要更改頁面,這對我的用戶來說是一件很煩人的事情。

這是我的問題:是否有一個事件可以從瀏覽器中收聽任何事件(點擊另一個鏈接,點擊瀏覽器的「後退」按鈕......)?如果我在做這件事的過程中遇到了錯誤,請不要猶豫,告訴我,我不太習慣在閃光燈下編程。

謝謝。

回答

0

我想我明白你在描述什麼。有些東西你可能想嘗試:

文件上載HTTP服務器

如果文件非常大,您可能要加載它們另一個HTTP服務器上,像Nginx的。看看Nginx Upload Module(我相信Apache有同樣的事情)。這基本上允許你上傳文件,而不會讓用戶感受到影響。

唯一的問題是它非常複雜,並且您不知道何時該文件完成上傳。但他們確實有如何顯示Upload Progress Bars with Nginx using Javascript的例子,所以你可以做這樣的事情,並在完成後(在JavaScript中),發送一條消息到閃光燈,調用像你的Event.COMPLETE處理程序。

瀏覽器事件

有瀏覽器事件的JavaScript攔截,防止用戶離開頁面,直至下載完成(不推薦,因爲它可能會惹惱用戶):

  • 的OnExit
  • 的OnClose
  • 的onblur(當他們點擊別處)

看看這個例子:Javascript onclose: Warn the User

希望幫助, 蘭斯

+0

實際上它是相反的,我想閃光燈停止加載當別的用戶點擊...但我認爲隨着瀏覽器事件的提示在javascript捕捉可將此信息發送到我的Flash文件的一個很好的解決方案。謝謝,我會試試這個。 – Remiz 2010-02-24 15:49:38