I have a facebook feed aggregator that displays the latest posts from all my pages. I only want 10 posts displayed at a time and then a "more button underneath that displays more posts if clicked. Everything is function except that it displays every post from every page that can be scrolled. The page loads so slowly because of the thousands of posts loading. I have achieved this with my twitter posts but for some reason not with Facebook. I have posted both the facebook and twitter code so you can compare. I need help limiting the number of posts displayed. Thanks
Here is a link to a screenshot of the software. https://gyazo.com/d1c2363d553de2e267c3eddea5857fc3
this.morefacebookpagefeeds = function () {
var obj = vm.currentfacebookpaging();
var feedinfo = new Object();
feedinfo.facebookfeeds = new Array();
feedinfo.PagingList = new Array();
var item = 0;
obj.forEach(function (e, index, array) {
item++;
var parameters = e.next.split("?")[1];
var page = ko.utils.arrayFirst(vm.currentfeedModelArray(), function (i) {
return i.Id == e.PageId;
});
FB.api("/" + facebookuserid + "/feed?" + parameters, 'get', { access_token: facebookaccesstoken }, function (response) {
response.data.forEach(function (feed, index, array) {
var feedsdata = new Object();
feedsdata.Description = feed.description;
feedsdata.Picture = feed.picture;
feedsdata.Name = feed.name;
feedsdata.Link = feed.link;
feedsdata.Message = feed.message;
feedsdata.PageName = page.ProfileName != undefined ? page.ProfileName : "";
feedsdata.PostDate = moment(new Date(feed.created_time)).format('ddd MMM DD YYYY hh:MM a');
feedsdata.ProfileImage = page.ProfileImageUrl;
feedsdata.PageUrl = page.ProfileUrl != undefined ? page.ProfileUrl : "";
feedsdata.Id = page.ProfileId != undefined ? page.ProfileId : "";
feedinfo.facebookfeeds.push(feedsdata);
if (response.paging != null) {
feedsdata.Paging = new Object();
feedsdata.Paging.previous = response.paging.previous;
feedsdata.Paging.next = response.paging.next;
feedsdata.Paging.PageId = pageId;
}
feedinfo.PagingList.push(feedsdata.Paging);
});
if (item == array.length) {
feedinfo.facebookfeeds.forEach(function (item) {
vm.currentfeedModelArray.push(item);
});
feedinfo.PagingList.forEach(function (item) {
vm.currentfacebookpaging.push(item);
})
}
});
});
}
this.twitterfeeds = function (sinceid) {
if (sinceid) {
var sinceidvalue = vm.currenttwitterfeedModelArray()[vm.currenttwitterfeedModelArray().length - 1].Id;
}
ajaxExt({
type: "POST",
throbberPosition: { my: "center center", at: "center center", of: $(window), offset: "5 0" },
data: { sinceid: sinceidvalue },
url: baseUrl + 'Social/TwitterFeed',
showThrobber: true,
success: function (data) {
vm.feedModelArray.removeAll();
if (sinceidvalue == undefined || sinceidvalue == null) {
vm.currenttwitterfeedModelArray.removeAll();
}
if (data.Object == null || data.Object.length == 0) {
$('#loadmoretwitter_btn').css('display', 'none');
}
data.Object.forEach(function (item) {
vm.currenttwitterfeedModelArray.push(item);
});
}
});
}