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

これ:

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

これでなければなりません:

if (newContent != $("#responsecontainer").html()) {
于 2012-04-13T22:20:07.743 に答える
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 に答える