【问题标题】:Javascript to load image from server asynchronouslyJavascript从服务器异步加载图像
【发布时间】:2012-12-07 05:53:07
【问题描述】:

我想将图片从我的服务器加载到图片库。问题是,在加载网页后,我的程序首先加载所有图像,然后同时显示它们。因此,它们需要等待很长时间才能加载。

我想在加载时一次显示一张图片,在尚未加载的图片上显示“忙碌”指示符。

这是我的代码:

controller.labelForIndex = function (index) { 
    var arrayIndexNO=(index%(temp.length/2))*2;
    var appID=temp[arrayIndexNO];
    var iconImage=appID+".png";

    $(".ad-carousel-view .cells > li").css("background-image", "url("+iconImage+")");

    return temp[arrayIndexNO+1];
};

这个函数被调用了10次来加载10个png并显示在一个单元格中,但是我的代码先加载所有的图片,然后同时显示它们。

【问题讨论】:

  • 您需要提供有关如何将这些图像添加到您的画廊的更多详细信息。请发布一些代码。
  • 实际上我将图像添加到轮播视图....看到这一行 $(".ad-carousel-view .cells > li").css("background-image", "url( "+iconImage+")");所以我的容器是“.ad-carousel-view .cells > li”,我在其中添加图像..

标签: javascript jquery


【解决方案1】:

How to load images with jquery ajax? (From jQuery mailing list)

您不能使用 AJAX 加载图像,只需创建一个新的图像对象并 附加,然后图像可以异步加载。试试这个简单的 jQuery 插件:

$.fn.image = function(src, f){
    return this.each(function(){ 
        var i = new Image();
        i.src = "">        i.>        this.appendChild(i);
    });
}

然后像这样调用这个插件:

$("#container").image(" http://jquery.com/images/hat2.gif",function(){
  alert("The image is loaded now");
});

【讨论】:

  • 嗨...我看到了代码...但我不知道如何添加插件...我想在此处添加图像 $(".ad-carousel-view .cells > li").css("background-image", "url("+iconImage+")");....那么插件怎么调用??
  • 我认为您不能异步获取背景图像。您应该改用真实图像。首先制作没有 src 的图像,然后使用 javascript 加载这些图像并更新所有 src 属性。
  • 请尝试将您的图像移动到真实图像而不是背景图像,并向我们展示您更新的代码。我希望看到的是,如果您遇到任何问题,您会尝试提出更具体的问题。
  • 嗨,看看这个 $(".ad-carousel-view .cells > li").css("background-image", "url("+iconImage+")"); 1>这里iconImage是我想从服务器加载的图像的URL 2>这被称为假设10次...... 3>每次它都会获得新的iconImage URL。 4>我的问题是所有图像同步加载和显示...我想要异步...
  • 我认为您在使用 css 属性 background-image 而不是 时遇到了问题。我建议您尝试使用真实的图像元素而不是样式表背景。您还可以使用 javascript 加载图像,并在加载完成后更新您的 css 属性以使用所需的背景图像。当 ajax 加载您的图像时,您可以改用繁忙的指示图像。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-15
  • 2022-11-16
  • 2013-04-27
  • 2012-11-28
相关资源
最近更新 更多