簡體   English   中英

無法使AJAX腳本正常工作

[英]Can't get AJAX script to work

我有一個包含事務列表的表,正在嘗試按設置的時間間隔更新表內容。 我正在linux red hat服務器上運行此頁面。 只是AJAX目前無法正常工作。

<!doctype html>
<html>

    <head>
        <script>
            function updateTrans() {
                var xmlhttp;

                if (window.XMLHttpRequest) {
                    xmlhttp = new XMLHttpRequest();
                } else {
                    xmlhttp = new ActiveXObject("Microsoft.HTTP");
                }

                xmlhttp.onreadystatechange = function () {

                    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                        document.getElementById("transactions").innerHTML = xmlhttp.responseText;
                    }

                }

                xmlhttp.open("GET", "update_trans.txt", true);
                xmlhttp.send();
            }

            window.setInterval(updateTrans(), 4000);
        </script>
        <link href="trans_styles.css" rel="stylesheet" type="text/css">
    </head>

    <body>
         <h1 id="heading"> Chomp The Bit </h1>

        <div id="transactions">
            <table id="trans_tbl" border="0">
                <tr>
                    <th colspan="2">Latest Transactions</th>
                </tr>
                <tr>
                    <td>aaaaaaaaaaaaaaaaaaaaaaaaaaaaa</td>
                    <td>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</td>
                </tr>
                <tr>
                    <td>bbbbbbbbbbbbbbbbbbbbbbbbbbbbb</td>
                    <td>bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb</td>
                </tr>
                <tr>
                    <td>ccccccccccccccccccccccccccccc</td>
                    <td>cccccccccccccccccccccccccccccc</td>
                </tr>
                <tr>
                    <td>ddddddddddddddddddddddddddddd</td>
                    <td>dddddddddddddddddddddddddddddd</td>
                </tr>
                <tr>
                    <td>eeeeeeeeeeeeeeeeeeeeeeeeeeeee</td>
                    <td>eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee</td>
                </tr>
                <tr>
                    <td>fffffffffffffffffffffffffffff</td>
                    <td>ffffffffffffffffffffffffffffffff</td>
                </tr>
                <tr>
                    <td>ggggggggggggggggggggggggggggg</td>
                    <td>gggggggggggggggggggggggggggggggg</td>
                </tr>
                <tr>
                    <td>hhhhhhhhhhhhhhhhhhhhhhhhhhhhh</td>
                    <td>hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh</td>
                </tr>
                <tr>
                    <td>iiiiiiiiiiiiiiiiiiiiiiiiiiiiii</td>
                    <td>iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii</td>
                </tr>
                <tr>
                    <td>jjjjjjjjjjjjjjjjjjjjjjjjjjjjjj</td>
                    <td>jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj</td>
                </tr>
            </table>
        </div>
    </body>

</html>

確保在同一目錄中具有update_trans.txt文件,並且該文件不為空。

        <head>
            <script>
                function updateTrans() {
                    var xmlhttp;

                    if (window.XMLHttpRequest) {
                        xmlhttp = new XMLHttpRequest();
                    } else {
                        xmlhttp = new ActiveXObject("Microsoft.HTTP");
                    }

                    xmlhttp.onreadystatechange = function () {

                        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                            document.getElementById("transactions").innerHTML = xmlhttp.responseText;
                        }

                    }

                    xmlhttp.open("GET", "update_trans.txt", true);
                    xmlhttp.send();
                }

                window.setInterval(updateTrans(), 4000);
            </script>
            <link href="trans_styles.css" rel="stylesheet" type="text/css">
        </head>

        <body>
             <h1 id="heading"> Chomp The Bit </h1>

            <div id="transactions">

             </div>
        </body>

    </html>

我不確定這是否可以解決問題,但您應該執行window.setInterval(updateTrans, 4000)而不是window.setInterval(updateTrans(), 4000) 也就是說,您應該將對函數的引用作為setInterval的第一個參數傳遞,而不是調用函數的返回值,這是您在當前代碼中所做的事情。 在您當前的代碼中, updateTrans將被調用一次(當您自己調用時),但是不會像預期的那樣每4000毫秒調用一次。

我還建議您使用setTimeout而不是setInterval我寫了一篇關於此的文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM