首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当缓存为false时,$http.get()不会触发新的网络请求

当缓存为false时,$http.get()不会触发新的网络请求
EN

Stack Overflow用户
提问于 2013-05-30 18:58:19
回答 2查看 453关注 0票数 0

下面的代码旨在阻止用户在后端系统消失和/或脱机时执行任何操作。我遇到了一个问题,没有任何成功/错误被触发。此外,在第一个请求条目之后,铬中的“网络”选项卡中没有出现新的网络请求。我认为这可能是一个缓存问题,尽管文档说默认情况下缓存是禁用的。因此,我禁用了这个请求的缓存,它仍然没有在控制台中显示任何错误/成功。但是,每次运行时都会在上显示checking system status

代码语言:javascript
代码运行次数:0
运行
复制
    var checkSystemStatus = function () {
        var timeout = 4,
            timerMessages = {};
            timerMessages[0] = "Check system...";
            timerMessages[timeout-1] = "Checking system in [[seconds]]...";
            timerMessages[timeout] = "System is offline";

        console.log('checking system status');
        $http.get(apiUrl+'/system/isOnline', {cache: false}).
            success(function(r) {
                console.log('success');
                if (r == 'true' && NotificationService.isBlockingDialogVisible()) {
                    document.location.reload(true);
                } else if (r != 'true') {
                    NotificationService.showBlockingTimer(timerMessages, timeout);
                }
            }).
            error(function (r) {
                console.log('error');
                NotificationService.showBlockingTimer(timerMessages, timeout);
            });

        setTimeout(function () {
            checkSystemStatus();
        }, (timeout+1) * 1000);
    }
    checkSystemStatus();

对于为什么我没有看到任何网络活动或获得一个成功/失败的触发器,有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-30 19:04:16

尝试使用$timeout而不是setTimeout,否则您将耗尽角的“运行循环”,这可能就是原因。

票数 1
EN

Stack Overflow用户

发布于 2013-05-30 19:03:09

在编写几乎相同的东西时,我遇到了一些非常类似的东西,也是一个IsOnline函数。我绕过了这个问题,在请求URL的末尾添加了大量随机数,作为查询字符串参数,以避免缓存。这并不能直接回答这个问题,但我发现它是一个合适的替代方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16843859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档