0

我有一个 ID 为“responsecontainer”的 div,我想加载一个页面。如果 DIV 的内容已更改,则更新 DIV,否则保持不变。

这是我的代码,它不起作用;

<script>
$(document).ready(function () {
    $("#responsecontainer").load("qr.asp");
    var refreshId = setInterval(function () {
        $.get("qr.asp?randval=" + Math.random(), function (result) {
            var newContent = $('.result').html(result);
            if (newContent != $("#responsecontainer")) {
                $("#responsecontainer").html(result);
            };
        });
    }, 5000);
    $.ajaxSetup({
        cache: false
    });
});
</script>
4

2 回答 2

0

我不会依赖.html()表示进行字符串比较。

浏览器决定 HTML 字符串应该如何呈现,如果浏览器决定它应该以不同的方式显示一次,开发人员将无法进行任何控制。

您应该有一个可供每个间隔调用访问的变量,并在旧响应和新响应之间进行字符串比较。

$(document).ready(function () {

    var prev_response;

    $("#responsecontainer").load("qr.asp", function(resp) {
        prev_response = resp;
    });

    var refreshId = setInterval(function () {
        $.get("qr.asp?randval=" + Math.random(), function (result) {

            if (prev_response !== result) {
                prev_response = result;
                $("#responsecontainer").html(result);
            }
        });
    }, 5000);
    $.ajaxSetup({
        cache: false
    });
});
于 2012-04-13T22:24:41.397 回答
0

这个:

if (newContent != $("#responsecontainer")) {

应该是这样的:

if (newContent != $("#responsecontainer").html()) {
于 2012-04-13T22:20:07.743 回答