如何在页面加载时异步加载图像并在加载时显示加载gif?

时间:2013-11-14 16:57:36

标签: javascript jquery ajax asp.net-mvc

这是我的图片标记。图像是从数据库动态生成的图形。涉及的数据量可能会有很大差异。有时它会在不到一秒的时间内加载,有时它会在最多6到7秒内加载,直到返回并显示图形图像。我想要做的是显示一个简单的占位符gif,直到加载的实际图像。

<img src="@Url.Action("Graph", new { id =  Model.ID })" alt="Graph is Loading..." />

1 个答案:

答案 0 :(得分:3)

完全忽略你的ASP,你可以添加加载器作为源和真实图像作为数据属性的元素,然后用javascript加载图像,并在加载真实图像后交换图像:

<img src="loader.gif" data-src="/images/menubar.png" />

JS预加载

$('img').each(function() {
    var self = this,
        src  = $(self).data('src'), // get the data attribute
        img  = new Image();         // create a new image

    img.onload = function() {       // onload
        self.src = this.src;        // swap the source
    }

    img.src = src;                  // set source of new image

    if (this.complete) $(this).load();
});
相关问题