回答
該操作是異步的;很多圖片「預加載」代碼都依賴於該功能。
編輯:給一點點有用的信息以及。如果你希望有一定的操作同步等待圖像通過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. 設置同步代理的localprovider屬性
- 5. 當異步操作同步完成時?
- 6. 同步屬性獲得者/設置者
- 7. Ajax同步或異步
- 8. file_get_contents同步或異步
- 9. XMLHttpRequest同步或異步
- 10. 異步Ajax vs異步屬性
- 11. 同步對象與未同步對象
- 12. 在WPF中設置同步對象
- 13. 同步時忽略屬性
- 14. 屬性設置異步回調不停留設置
- 15. 關於同步性/異步性假設的最佳實踐
- 16. 異步函數同步結束時是否設置了OVERLAPPED.hEvent?
- 17. Html5異步屬性vs js異步屬性
- 18. 當使用一次性對象時使用等待異步
- 19. 對屬性的異步更改
- 20. 的logback記錄 - 同步或異步
- 21. TaskCompletionSource.TrySetResult的同步或異步繼續?
- 22. Java同步同類對象的特性
- 23. 對象同步
- 24. 同步對象
- 25. 對象同步
- 26. 同步對象
- 27. C#異步對象
- 28. 設置DataGridView.DataSource異步
- 29. IMG PHP的src異步
- 30. 來自地圖的同步設置或來自同步地圖的設置?
設置圖像源並在圖像src設置後調整imediatelly大小時,請注意異步圖像加載。 https://hacks.mozilla.org/2011/01/how-to-develop-a-html5-image-uploader調整大小可能會或不會工作... onload必須使用... – OSP 2013-03-07 12:46:29