我有一个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>
答案 0 :(得分:0)
此:
if (newContent != $("#responsecontainer")) {
应该是这样的:
if (newContent != $("#responsecontainer").html()) {
答案 1 :(得分: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
});
});