首页  >  文章  >  web前端  >  可以用jQuery异步加载图片吗?

可以用jQuery异步加载图片吗?

Susan Sarandon
Susan Sarandon原创
2024-11-12 03:43:02863浏览

Can Images Be Loaded Asynchronously with jQuery?

使用 jQuery 异步加载图像

问题:

尝试异步加载外部图像使用带有以下代码的 jQuery:

$.ajax({ 
   url: "http://somedomain.com/image.jpg", 
   timeout:5000,
   success: function() {

   },
   error: function(r,x) {

   }
});

会导致错误响应。 jQuery 可以实现异步图像加载吗?如果没有,如何异步加载图片?

解决方案:

使用 jQuery 确实可以实现异步图片加载。但是,$.ajax() 方法不适合此任务。相反,首选方法是动态创建一个新的图像元素并为其附加事件处理程序:

var img = $("<img />").attr('src', 'http://somedomain.com/image.jpg')
    .on('load', function() {
        if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
            alert('broken image!');
        } else {
            $("#something").append(img);
        }
    });

此方法使用本机 HTML5 图像加载机制,当图像完全加载时会触发加载事件已加载。通过检查complete、naturalWidth和naturalHeight属性,您可以确定图像是否已成功加载并防止损坏图像警告。

以上是可以用jQuery异步加载图片吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn