在我的 Angular 应用程序中,我使用 ng-infinite-scroll 来允许用户使用此处的插件不断滚动他们的“新闻提要” - https://sroze.github.io/ngInfiniteScroll/documentation.html
在我的桌面上它运行良好,但是在 Android 设备上的 Cordova 应用程序中运行它时,无限滚动会占用大量 CPU 资源。我正在尝试使用 THROTTLE_MILLISECONDS 选项仅每 x 秒处理一次滚动事件(这应该会提高性能并使滚动不那么生涩)。
我的模块定义如下:
var abcdDirectives = angular.module('abcdDirectives', []);
var abcdServices = angular.module('abcdServices', [ 'ngResource', 'infinite-scroll', 'ngCookies']);
abcdApp.value('THROTTLE_MILLISECONDS', 10000);
我正在尝试使用上面的行按如下方式限制它,但它似乎没有任何区别。
在我的模板视图中,我有以下代码:
<div
infinite-scroll="tabs[tabIndex].FeedService.loadFeed(false, tabs[tabIndex].FeedService.filters, search.text, search.dateFrom, search.dateTo)"
infinite-scroll-disabled="tabs[tabIndex].FeedService.busy || tabs[tabIndex].FeedService.noMoreResults || !tabs[tabIndex].active || tabs[tabIndex].FeedService.initialLoad"
infinite-scroll-distance="1"
infinite-scroll-immediate-check="false" >
<div ng-repeat="interaction in getTabItems(tabIndex) track by $index">
在 js 控制器中,这里是我的 getTabItems 函数
$scope.getTabItems = function (index) {
if (angular.isDefined($scope.tabs[index].FeedService)) {
console.log('getTabItems'); // this is being output to the console log over and over again extremely quickly
return $scope.tabs[index].FeedService.items;
}
}
上面函数中的控制台日志我可以在控制台日志中看到一遍又一遍地输出太多&我试图限制这个函数被调用但我使用的限制语句似乎没有任何区别?我对代码做错了什么
-- 版本 --
Angular 1.3.0
ng-infinite-scroll 1.2.2