回答
該操作是異步的;很多圖片「預加載」代碼都依賴於該功能。
編輯:給一點點有用的信息以及。如果你希望有一定的操作同步等待圖像通過JavaScript的形象目標負載,可以使用onload事件,像這樣:
var img = new Image();
img.onload = function() { /* onLoad code here */ };
img.src = 'xxxxxx';
變種IMG =新的圖片();
這是創建圖像的舊方法,它已被棄用。首選document.createElement('IMG')
或通過字符串和innerHTML創建一個。
現在,圖像是replaced elements,這意味着它們每當它們到達時都會加載,但如果指定了它們的尺寸,則在佈局流程中爲它們保留空間。 (如果沒有,則保留一個圖標大小的空間,當圖像以標題的形式到達時,屏幕會重新繪製;這可能會讓用戶感到不安,因此建議您在繪製頁面時準備好圖像尺寸第一次)
已過時?真?我不相信它曾經是任何標準的一部分。 – 2010-04-22 14:12:02
@Tim Down:我的意思是說,這是創建圖像的舊的(1990年代的)方式,這不是當前實踐的一部分。 – Robusto 2010-04-22 14:43:51
'new Image()'繼續在支持圖片的每個支持腳本的瀏覽器中工作,並且我贊成通過'innerHTML'。同意'document.createElement(「IMG」)'是可取的。 – 2010-04-22 15:29:03
同意@dereleased圖像預加載是異步完成;只是想我會補充說,在JavaScript中的Image()對象上使用這種技術有很多種方法,就像使用數組或事件處理程序一樣。
https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5214317.html
更改src是異步的。
代碼
image.src = "http://newimage-url";
將立即返回,瀏覽器將在另一個線程加載新形象。在完全加載之前,<img>
標記的所有屬性都不正確,例如寬度或高度。因此$(image).width()
可能不會返回新圖像的寬度。
正如@Dereleased所指出的那樣,您可以實現一個'on load'方法,該代碼只有在圖像加載完成後纔會執行。 jQuery的load()
可以輕鬆實現。
- 1. 異步下載對象屬性
- 2. 當異步操作同步完成時?
- 3. 同步屬性獲得者/設置者
- 4. XMLHttpRequest同步或異步
- 5. 異步Ajax vs異步屬性
- 6. 在WPF中設置同步對象
- 7. 同步時忽略屬性
- 8. 屬性設置異步回調不停留設置
- 9. 關於同步性/異步性假設的最佳實踐
- 10. 對屬性的異步更改
- 11. 同步對象
- 12. 對象同步
- 13. 對象同步
- 14. C#異步對象
- 15. 設置DataGridView.DataSource異步
- 16. IMG PHP的src異步
- 17. PipeInputStream和PipeOutputStream同步或異步?
- 18. 異步/同步和TCP或UDP
- 19. PHP語句同步或異步
- 20. 異步或同步加載更好?
- 21. NSManagedObjectContext異步或同步保存更改?
- 22. dispatch_sync(dispatch_get_global_queue(xxx),任務)同步或異步
- 23. 當我不使用異步函數時出現異步錯誤?
- 24. 我們可以設置一個類的對象的屬性嗎?
- 25. 角使用異步屬性
- 26. 索引服務設計 - 同步/異步
- 27. EDT,異步,同步
- 28. 設計使用同時支持同步和異步調用
- 29. 異步性在Vertx,它被設置
- 30. 當我們有足夠的線程時異步等待優勢
設置圖像源並在圖像src設置後調整imediatelly大小時,請注意異步圖像加載。 https://hacks.mozilla.org/2011/01/how-to-develop-a-html5-image-uploader調整大小可能會或不會工作... onload必須使用... – OSP 2013-03-07 12:46:29