2009-08-13 43 views
2

我在一個jQuery插件,人們可以包括在自己的網頁的工作。該插件會在我運營的服務中產生作業,這是位於不同域中的作業。整蠱:Surpress「載入中...」稱號,Firefox瀏覽器JSONP輪詢

違反我使用jQuery的JSONP功能工作正常產卵作業的域邊界。但是,我還需要顯示「進度」(0 - > 100%)。到目前爲止,我的計劃是不斷「投票」這項工作的進展(彗星會更好,但AFAIK不可能跨域)。

的問題是標籤的標題內輪詢進度每秒導致Firefox不斷閃爍,「正在加載...」我覺得這嚴重地困擾。 (Firefox會這樣做,因爲JSONP通過將腳本標記附加到DOM然後「加載」)來工作。

所以我的問題的肉:

是否有可能surpress「加載...」分頁標題的消息 - 或 - 有沒有更好的方式來「流」的進展的更新跨領域時尚?

- 費利克斯Geisendörfer

回答

0

如果它是一個長時間運行的工作,也許你可以得到一些平均運行時間,併爲用戶僞造它,使用不頻繁的輪詢來調整僞裝的完成百分比。

說一個平均工作需要十分鐘。您可以計算平均每秒應該完成的百分比,並假冒客戶端完全更新該數量。

然後,當您的三十秒計時器用完時,輪詢服務器以獲取實際的完成百分比,並更新進度條的速率,以便客戶端的虛假結束時間在服務器作業的新估計完成時間。

您可以通過一些數學計算來找到平均表現和當前測量時間之間的中間數據,但這取決於工作時間的可變性。

+0

呀實際上,這就是我最後做沒有一個答案:)。 – 2009-10-24 11:06:15

+0

有時候最好只是作弊。 :) – Mnebuerquo 2009-11-07 17:04:40

0

不幸的是,AJAX調用將只有一次,它已經完成返回,所以沒有辦法把它在它的最新進展你。

我會建議使用loading spinner什麼的。

如果它是一個絕對的要求,以顯示精確的加載進度,你可能需要從不同的角度接近它。

+0

很抱歉,如果我沒有搞清楚。這不是關於AJAX調用的進展。這是關於這是我的服務器上運行,並且可以通過Ajax調用輪詢的工作的進展情況。 – 2009-08-13 17:27:02

+0

疑難雜症,對不起,我沒有誤會。我也爲你:( – idrumgood 2009-08-13 17:39:14

0

CORS支持這些天變得相當普遍。您現在可以通過使用CORS來正確解決問題,以確定跨域XMLHttpRequests,並且檢測缺少CORS支持並返回到舊版瀏覽器的JSONP是微不足道的。

在第一個鏈接上有檢測代碼示例,詳細介紹了它的工作原理on MDC,如果您想了解瀏覽器兼容性的詳細信息,我前幾天更新the Wikipedia article

它的要點是:

  • 任何現代WebKit瀏覽器(Safari瀏覽器4+,鉻3+,新的羊羣等)
  • 任何壁虎1.9.1+(的火狐3.5,SeaMonkey的2.0+等。)
  • 的Internet Explorer 8+和基於它(斯雷普尼爾等)什麼...需要提醒的是它沒有實現傳遞國旗證書和餅乾的請求。

值得注意的例外是:

  • 歌劇院(不支持爲10.61)
  • 卡米諾(2.0.5基於Gecko的1.9.0(火狐3.0))
  • 阿羅拉(作爲阿羅拉0.10.2,它具有的API,但錯誤導致請求失敗)