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 は初めてだとおっしゃっていたので、AJAX を信じられないほど簡単に使用できる jQuery の使用を検討する必要があります。私は個人的に jQuery と独自の AJAX 関数を使用しているので、実際には、あなたがしていることはまったく問題ありません。しかし、手間をかけずにやりたい場合は、jQuery が最適です。

于 2013-08-14T22:59:01.093 に答える
-2

jQueryは使えますか?$.ajax に必要な ajax のボイラー プレートがすべて含まれています。

于 2013-08-14T22:54:21.480 に答える