Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从ajax请求中预加载图像,然后再显示它们?_Javascript_Jquery - Fatal编程技术网

Javascript 从ajax请求中预加载图像,然后再显示它们?

Javascript 从ajax请求中预加载图像,然后再显示它们?,javascript,jquery,Javascript,Jquery,我使用jQuery加载包含图像的html内容,问题是我不希望由于加载而导致图像闪烁的效果,为了实现这一点,我需要在插入响应体之前将图像预加载到响应体中,以确保平滑更新 当前代码: $.ajax({ url: 'hello.php', method: 'GET', data:'id='+id, success: function(data) { $('#section').html(data); } }); 有什么解决办法吗 谢谢我使用jQuery来实现这一点。您可

我使用jQuery加载包含图像的html内容,问题是我不希望由于加载而导致图像闪烁的效果,为了实现这一点,我需要在插入响应体之前将图像预加载到响应体中,以确保平滑更新

当前代码:

$.ajax({
url: 'hello.php',
method: 'GET',
data:'id='+id,
success: function(data) {
$('#section').html(data);               
}
});
有什么解决办法吗


谢谢

我使用jQuery来实现这一点。

您可以尝试以下未经测试的方法:


我试过后效果很好。

怎么回事?什么都没看见?图像加载到屏幕上?你试过我的答案吗?
var imagesLoading = 0;

$.ajax({
    url: 'hello.php',
    method: 'GET',
    data: 'id=' + id,
    success: function(data) {
        imagesLoading = 0;

        $(data).filter('img').each(function() {
            imagesLoading++;

            var image = new Image();

            image.onload = function() {
                imagesLoading--;
                if(imagesLoading == 0) {
                    $('#section').html(data);
                }
            };

            image.src = $(this).attr('src');
        });
    }
});