ajax - jquery .get 在渲染之前完全下载内容

标签 ajax jquery load get

是否有办法仅在使用 AJAX/get/load 和 jQuery 完全下载内容后才渲染内容?

就目前而言,加载器在下载“html”时显示,但一旦完成,它就会开始渲染。 html 中有很多图像,因此它们在渲染后开始独立加载。

这是好的设计实践吗?在我看来,一旦加载程序消失,所有内容都应该呈现 100%,但这当然会增加加载时间。

我可以在没有任何“黑客”的情况下实现这一目标吗?

$(document).ready(function() {

    $('#clicks').click(function(){

        $('#portfolio').append("<div id='loader'><img src='images/loader.gif'/></div>");

        $.get("moreProjects.html", function(datas){
            $('#portfolio').append(datas);
        }, 'html').complete(function() { 
            $('#loader').hide();
        });

        return false;

    });

});

最佳答案

您始终可以将返回的数据存储在变量中,然后将其附加到 complete 函数中:

var returnedData;
$('#clicks').click(function(){

    $('#portfolio').append("<div id='loader'><img src='images/loader.gif'/></div>");

    $.get("moreProjects.html", function(datas){
        returnedData = datas;
    }, 'html').complete(function() { 
        $('#portfolio').append(returnedData);
        $('#loader').hide();
    });

    return false;

});

另一种选择是使用隐藏的 div 容器来加载内容,然后在完成时显示:

$('#clicks').click(function(){

    $('#portfolio').append("<div id='loader'><img src='images/loader.gif'/></div>");
    $('#portfolio').append("<div id='content' style='display:none'></div>");

    $.get("moreProjects.html", function(datas){
        $('#portfolio #content').append(datas);
    }, 'html').complete(function() { 
        $('#portfolio #content').show();
        $('#loader').hide();
    });

    return false;

});

关于ajax - jquery .get 在渲染之前完全下载内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9556461/

相关文章:

java - 立即查询保存的实体有时会返回 null - 数据存储

javascript - CSS 以更好地显示图像预览

jquery - 缩放后标记不完全在同一点上。自定义 map GTA5

php - 为什么 auto_prepend_file 在 php 的交互模式下不起作用?

python - 从移动目录加载 tensorflow 模型

java - HTTP 状态 415 - 使用 Ajax 将 Json 数据发布到 Spring MVC 4 还使用了 Spring Security

javascript - jQuery 用户界面 : Re-initializing a function after loading content via AJAX

javascript - 通过 AJAX 发布 Canvas blob : prevent/delete local cache

javascript - 动态内容鼠标悬停

php - 使用不同域对网站进行负载平衡