setInterval()触发但ajax更新div内容不起作用

时间:2018-11-27 17:20:31

标签: javascript jquery asp.net-ajax setinterval

onDocumentReady(), $(function () {...})中,有一行:window.setInterval("readPluginCache();", 3000);

readPluginCache()方法调用ajax调用来检索命名$('#pluginCacheData')元素的替换html并设置其格式。

我可以在Chrome浏览器(F12)中看到,每三秒钟记录一次Ajax启动,完成和成功事件(如预期的那样)。

但是,新的html不会替换旧的html值... 我在页面上有一个按钮(作为备份),它调用readPluginCache()方法;它有效!

如何使setInterval()方法有效?

function readPluginCache() {
    if (!isAuthorized) {
        addMessageError("Error: Unauthorized readCache attempt.");
        return false;
    }

    $('#pluginCacheData').hide();
    $.ajax({
        type: "POST",
        url: infoPageName + "/BriskPluginCacheInfoHtml",
        data: '{}',
        contentType: "application/json; charset=utf-8",
        dataType: "json"
    }).done(function (response) {
        $('#pluginCacheData').empty();
        $('#pluginCacheData').append(response.d);
    }).fail(function (jqXHR, exception) {
        if (jqXHR.responseText.toLowerCase().indexOf('html') !== -1) {
            addMessageError("Internal Server Error: readPluginCache().     Please check the event log.");
        }
        else
            addMessageError("Error: " + jqXHR.responseJSON.Message);
        alert(exception);
    }).always(function () {
        $('#pluginCacheData').show();
    });

    return true;
}

1 个答案:

答案 0 :(得分:0)

好的,我知道了。但我不确定为什么会这样... 我通过封装另一个称为readAll()的函数来抽象了原始的ajax调用,因此:window.setInterval(readAll,3000)。 readAll()依次调用三种不同的基于ajax的html / div修改方法。我做了这个b / c,页面的其他部分也需要动态更新...对我来说,为什么一个ajax调用不起作用时,为什么这种方法有效呢?