我正在使用Angular的超时以用户指定的间隔刷新图像的内容。当该间隔太低而无法加载图像(例如1秒)时,每个后续请求都会取消前一个请求,导致图像永远不会刷新。
而不是这种行为,我想要完成当前请求,以及后续请求被取消,直到请求冲突时完成请求。我怎么能这样做?
处理刷新的代码:
$scope.setImagePath = function() {
$scope.imagePath = $scope.camera.endpoint + '?decache=' + Math.random();
};
$scope.setImagePath();
$scope.refreshOnInterval = function() {
$timeout(function() {
$scope.setImagePath();
$scope.refreshOnInterval();
}, $scope.refresh);
};
$scope.refreshOnInterval();
答案 0 :(得分:1)
看一下this question的答案。该事件表明将为实施提供基础。
我的建议是使用imageonload
指令作为开头。而不是alert
某事物,用图像的加载状态更新变量。然后,在$timeout
处理程序中,检查此状态变量,如果状态仍在加载,则不要调用setImagePath()
。您可能还需要在setImagePath()
中更新状态变量。