AngularJS http使用settimeout逻辑

时间:2016-05-26 08:23:51

标签: javascript angularjs node.js setinterval

我有一个问题,其中一家公司有如此多的数据,这些数据使得加载这么长时间才会显示在我的AngularJs项目中。有时,当切断连接类型或请求超时时,它不会出现。那时,我的客户端显示一些消息并再次重新运行该功能以重新加载数据。后端正在使用NodeJS。

请帮我完整填写客户的要求。

这是我从后端获取数据的代码。

$scope.tableParams = new ngTableParams({
    page: 1, // show first page
    count: 20, // count per page
    sorting: {
        title: 'asc' // initial sorting
    },
    filter: {
        title: filterText,
        is_active: $scope.IsActive
    }
}, {
    total: 0,
    getData: function ($defer, params) {
        companyService.getDataBelongToCompany($scope.companyId, params.url()).then(function (data) {
            params.total(data.total);
            $defer.resolve(data.jobs);
            $scope.collapsed = false;
        }, function () {
            $defer.resolve([]);
        });
    }
});

2 个答案:

答案 0 :(得分:1)

我认为您需要的是使用服务器端分页。如果响应时间过长,您应该限制后端发送的数据并对其进行分页,因为它会影响用户体验。

在这里,您可以找到有关如何使用ngTable进行分页的更多信息:

ngTable pagination documentation

答案 1 :(得分:0)

一种方法是在 http 请求中添加超时,如下所示

$http.get('url', {timeout: 5000}); 如果它需要超过5秒,你可以在.error()函数

中显示消息

查看此答案以获取更多详细信息 How to set a global http timeout in AngularJs