0

我正在使用 ajax 脚本在 php 脚本运行时在 iframe 中显示加载动画。一旦 php 脚本完成运行 ajax 加载脚本,就会加载完成的 php 脚本输出。

更新:我已经通过替换解决了这个问题:

url='action.php?run=go';
http.open("GET",url, true);

和:

http.open( "GET", "go.php?random=" + Math.random(), true);

我读到 IE 缓存每个请求并且不喜欢多次发送请求。

<!DOCTYPE html> 

<script type="text/javascript">
document.write('<link rel="stylesheet" href="../css/loading.css" type="text/css" /><div id="loading"><br><center>Please Wait...<br><br><img src="loader.gif"/><center></div>');
//Ajax Function

function getHTTPObject() {
    var xmlhttp;
    if (window.ActiveXObject) {
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (E) {
                xmlhttp = false;
            }
        }
    } else {
        xmlhttp = false;
    }
    if (window.XMLHttpRequest) {
        try {
            xmlhttp = new XMLHttpRequest();
        } catch (e) {
            xmlhttp = false;
        }
    }
    return xmlhttp;
}
//HTTP Objects..
var http = getHTTPObject();

//Function which we are calling...

function AjaxFunction() {
    url = 'action.php?run=go';
    http.open("GET", url, true);
    http.onreadystatechange = function () {
        if (http.readyState == 4) {
            //Change the text when result comes.....
            document.getElementById("loading").innerHTML = http.responseText;
        }
    }
    http.send(null);
} 
</script>
</head>
<body onload="AjaxFunction()">
</body>
4

2 回答 2

0

xmlhttp = new XMLHttpRequest();在测试 ActiveXObject 之前尝试这些东西。后者用于与旧版本的 IE(我相信 IE 5 和 6)兼容。但是,较新版本的 IE 支持使用XMLHttpRequest对象。您也可以尝试正确缩进以使您的代码可读。

此外,由于您提到您是 JS 和 AJAX 的新手,您真的应该考虑使用 jQuery,这使得使用 AJAX 变得非常容易。我个人使用 jQuery 以及我自己的 AJAX 函数,因此,在实践中,您所做的一切都很好。但是,如果您宁愿没有麻烦,那么 jQuery 就是您要走的路。

于 2013-08-14T22:59:01.093 回答
-2

可以使用 jQuery 吗?它具有您在 $.ajax 中需要的所有 ajax 样板代码

于 2013-08-14T22:54:21.480 回答