我用Image對象定期加載遠程圖像,稍後在畫布上繪製。 Image對象僅在JS中創建,它不存在於DOM中。用Opera在Opera中更新圖像源代碼
該代碼在Chrome和Firefox中正常工作。在Opera中,問題在於,當圖像源被修改時,瀏覽器似乎總是切換到「加載模式」,即,光標變爲「等待」,並且Opera向地址欄添加「元素:X/Y」。
這裏的測試代碼:http://jsfiddle.net/nZntU/3/
有誰知道這個戲行爲的任何解決方法嗎?
我用Image對象定期加載遠程圖像,稍後在畫布上繪製。 Image對象僅在JS中創建,它不存在於DOM中。用Opera在Opera中更新圖像源代碼
該代碼在Chrome和Firefox中正常工作。在Opera中,問題在於,當圖像源被修改時,瀏覽器似乎總是切換到「加載模式」,即,光標變爲「等待」,並且Opera向地址欄添加「元素:X/Y」。
這裏的測試代碼:http://jsfiddle.net/nZntU/3/
有誰知道這個戲行爲的任何解決方法嗎?
正如@graste指出的那樣,Opera 12.50修復了這個bug。從他們的更改日誌:
CORE-43199歌劇不應該顯示爲未在DOM
我使用Opera並知道你在描述什麼(或試圖實現)。我將我的進度欄佈局設置爲「彈出底部」。您的示例每秒都會在我的瀏覽器底部彈出一個彈出窗口,當我輸入該選項卡時(而您的示例在後臺選項卡中處於活動狀態)時,我的光標每秒都會切換到進度指示器圖標。
Opera的默認行爲是在地址欄中顯示任何進度信息。即使我完全禁用進度條(設置爲「關」),我注意到通過導航欄中更改的重新加載/停止按鈕以及地址欄內的短暫閃爍(書籤星號消失)來重新加載。在不同的設計/佈局/配置中可能還有其他可見的東西。
說實話,你試圖阻止用戶從他們可能想故意看到的東西。我常常被這種出現的工具欄和等待遊標感到有些惱火,但OTOH通常很高興地注意到我的瀏覽器在後臺執行某些操作。在使用Chrome等其他瀏覽器時,我經常會感到困惑,因爲當我瀏覽器在後臺執行繁重的AJAX提升工作時,我沒有注意到,而我正在閱讀一篇文章等,這有時會導致令人困惑的情況或怪異的客戶端狀態。
我認爲你不應該嘗試改變瀏覽器行爲,因爲這完全超出了你的範圍。有人在那裏有大量定製的瀏覽器,無鉻窗口管理器等。你也不會嘗試啓用或更改用戶的瀏覽器中的其他功能,當它沒有配置你的喜好(認爲第三方餅乾,JavaScript,插件等)。用戶以他喜歡的方式使用和配置他的用戶代理(這意味着他可以禁用CSS,使用大量的用戶樣式表和JavaScript,禁用iframe,禁止移動窗口等)。
作爲一個便箋,我記得在未來版本的Opera(關於XHR)中讀了一些關於這種默認行爲的改變,但我不知道這一點,因爲我在開發快照中輸入這個有默認的進度欄行爲。我想,那就是生活。 :-)
感謝您對此Opera行爲的深刻見解!然而,我不得不不同意這是否是我想要的 - 考慮到越來越多的網站在後臺動態執行某些操作。就我而言,我沒有別的選擇 - 我需要取得c.a.每秒25張圖像。我猜沒有用戶想多次看到等待的光標;-) – 2012-07-25 07:42:00
有可能對您有所期待:CORE-43199 Opera不應該顯示不在DOM中的圖像的加載指示http://my.opera.com/desktopteam/blog/2012/08/03/summer-core-update – graste 2012-08-04 16:00:01
謝謝!我會定義檢查了這一點。 – 2012-08-04 20:36:04
所以問題只是光標圖像加載指示?我不使用Opera,但你有沒有嘗試過使用CSS? 'cursor:default;' – 2012-07-24 21:35:53
當您更改'Image'對象的src'時,應該立即加載新圖像。如果您不想立即加載它,請不要設置它。或者@MattBall說,如果你只關心遊標...... – tkone 2012-07-24 21:36:37
它不僅僅是關於遊標。 Opera在下載新圖像時,還會在地址欄中放入「Elements X/Y」。 – 2012-07-24 21:37:15