javascript - 显示 LOADING 直到页面完全加载

标签 javascript ajax

我有这个 JavaScript:

function createRequestObject(){
    var req;
    if(window.XMLHttpRequest){
        //For Firefox, Safari, Opera
        req = new XMLHttpRequest();
    }
    else if(window.ActiveXObject){
        //For IE 5+
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else{
        //Error for an old browser
        alert('Your browser is not IE 5 or higher, or Firefox or Safari or Opera');
    }
    //alert (req);
    return req;
}

//Make the XMLHttpRequest Object
var http = createRequestObject();

function sendRequestTwo(method, url, head1){
    head = head1
    if(method == "get" || method == "GET"){
        http.open(method,url);
        http.onreadystatechange = handleResponseTwo;
        http.send(null);

    }
}

var head; //divs name

function handleResponseTwo(){
    if(http.readyState == 4 && http.status == 200){
        var response = http.responseText;
        if(response){  
            document.getElementById(head).innerHTML = response;
        }
    }      
}

这部分

            document.getElementById(head).innerHTML = response;

将结果粘贴回我的页面。 如何在页面完全加载之前显示“正在加载”?

最佳答案

在正文中添加一个包含加载 Html 的 Div 怎么样?

<div id="loadingDiv" class="hiddenClass">Fancy rotating image goes here</div>

有一个 css 类,上面写着 display:none;那么你可以在之前使用它

http.onreadystatechange = handleResponseTwo;
var myDiv = document.getElementById('loadingDiv');
myDiv.className = "showClass";

然后之后

document.getElementById(head).innerHTML = response;

添加

var myDiv = document.getElementById('loadingDiv');
myDiv.className = "hiddenClass";

大家一起

function createRequestObject(){
    var req;
    if(window.XMLHttpRequest){
        //For Firefox, Safari, Opera
        req = new XMLHttpRequest();
    }
    else if(window.ActiveXObject){
        //For IE 5+
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else{
        //Error for an old browser
        alert('Your browser is not IE 5 or higher, or Firefox or Safari or Opera');
    }
    //alert (req);
    return req;
}

//Make the XMLHttpRequest Object
var http = createRequestObject();

function sendRequestTwo(method, url, head1){
    head = head1
    if(method == "get" || method == "GET"){
        var myDiv = document.getElementById('loadingDiv');
        myDiv.className = "showClass";

        http.open(method,url);
        http.onreadystatechange = handleResponseTwo;
        http.send(null);

    }
}

var head; //divs name

function handleResponseTwo(){
    if(http.readyState == 4 && http.status == 200){
        var response = http.responseText;
        if(response){  
            document.getElementById(head).innerHTML = response;
            var myDiv = document.getElementById('loadingDiv');
            myDiv.className = "hiddenClass";
        }
    }      
}

关于javascript - 显示 LOADING 直到页面完全加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10300717/

相关文章:

javascript - createElement() 如何与innerHTML 一起使用?

javascript - 如何将动态路由传递给 Rails 中的 AJAX POST 请求

javascript - 缩小版本的 jQuery 或 Prototype - JS 框架选择

javascript - javascript 框架如何处理 304 未修改?

javascript - jquery 淡入和淡出动态内容

javascript - 如何使 Javascript Tampermonkey 脚本搜索同一单词的小写和大写字符

java - 使用 Closure-compiler.jar 使用 ANT 进行 r.js 优化时出现非法字符错误

javascript 是同步编程语言,不是吗?

javascript - gulp-ruby-sass 插件不抛出错误,只记录错误本身

JQuery AJax - 加载计时器