diff options
| author | rr- <rr-@sakuya.pl> | 2016-04-17 09:24:05 +0200 |
|---|---|---|
| committer | rr- <rr-@sakuya.pl> | 2016-04-17 09:24:05 +0200 |
| commit | a197368bc54d0dab3db50cd8e05d15efebd58796 (patch) | |
| tree | 7c731814f1f1f6a5f2c9ecc3fcdd90162d3a9ffc /client/js/views/endless_page_view.js | |
| parent | 0bc45e9c45ec92192f23079a3a1a3cb6e8d8c9e8 (diff) | |
client/paging: fix endless pager issues
Diffstat (limited to 'client/js/views/endless_page_view.js')
| -rw-r--r-- | client/js/views/endless_page_view.js | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/client/js/views/endless_page_view.js b/client/js/views/endless_page_view.js index 84cc283..2b00fe8 100644 --- a/client/js/views/endless_page_view.js +++ b/client/js/views/endless_page_view.js @@ -17,6 +17,7 @@ class EndlessPageView { const pagesHolder = source.querySelector('.pages-holder'); views.listenToMessages(target); views.showView(target, source); + this.active = true; let headerRendererCtx = ctx; headerRendererCtx.target = pageHeaderHolder; @@ -90,6 +91,7 @@ class EndlessPageView { } unrender() { + this.active = false; window.removeEventListener('scroll', this.updater, true); } @@ -104,6 +106,9 @@ class EndlessPageView { } ctx.requestPage(pageNumber).then(response => { + if (!this.active) { + return; + } this.totalPages = Math.ceil(response.total / response.pageSize); if (response.total) { const pageNode = this.pageTemplate({ @@ -132,7 +137,7 @@ class EndlessPageView { } this.fetching = false; - this.updater(); + window.setTimeout(() => { this.updater(); }, 10); if (response.total <= (pageNumber - 1) * response.pageSize) { events.notify(events.Info, 'No data to show'); |