0
$(function() {
    setInterval(function() {
        $.get("refresh.php", function(result) {
            $('#response').empty()
            .hide()
            .html(result)
            $("#response").append(result)
            .fadeIn("slow");
        });
    }, 5000);
});

实际上我的脚本在 refresh.php 中每 5 秒点击一次 refresh.php从 mysql db 获取数据并创建一个模板,如:

<table>
<tr><td>Name<td><td>$fetch['name']</td></tr>
</table>

我在萤火虫上检查了我的 refresh.php 在 5 秒后仅发送一次响应,但在所有浏览器上它显示了两次结果,例如:

<table>
    <tr><td>Name<td><td>$fetch['name']</td></tr>
    </table>
<table>
    <tr><td>Name<td><td>$fetch['name']</td></tr>
    </table>
4

2 回答 2

4

它显示了两次结果,因为您将其放在那里两次:首先 using html,然后 using append

$(function() {
    setInterval(function() {
        $.get("refresh.php", function(result) {
            $('#response').empty()
            .hide()
            .html(result)                 // <==== Here
            $("#response").append(result) // <==== And here
            .fadeIn("slow");
        });
    }, 5000);
});

htmlempty用您提供的标记(或元素[s])替换元素的内容(在使用之前不需要)。将您提供的标记(或元素[s])append 附加到元素。

你想要一个或另一个。我会去html

$(function() {
    setInterval(function() {
        $.get("refresh.php", function(result) {
            $('#response')
                .hide()
                .html(result)
                .fadeIn("slow");
        });
    }, 5000);
});
于 2012-04-05T21:48:08.313 回答
-1

使用以下

$.get("refresh.php", function(result) {

    $("#response").html(result);
});
于 2012-04-05T21:50:19.653 回答