Sha256: 3893d8efcf6752b8d536f7e795469bf2483ee49cb836a28283df44f8ec2e7a1f

Contents?: true

Size: 1.24 KB

Versions: 19

Compression:

Stored size: 1.24 KB

Contents

//= require ./adjacent_pages

pageflow.AdjacentPreparer = pageflow.Object.extend({
  initialize: function(adjacentPages) {
    this.adjacentPages = adjacentPages;
  },

  attach: function(events) {
    this.listenTo(events, 'page:change', this.schedule);
  },

  schedule: function(page) {
    clearTimeout(this.scheduleTimeout);

    var prepare = _.bind(this.prepareAdjacent, this, page.element.page('instance'));
    this.scheduleTimeout = setTimeout(prepare, page.prepareNextPageTimeout());
  },

  prepareAdjacent: function(page) {
    var adjacentPages = this.adjacentPages.of(page);
    var noLongerPreparedPages = _.difference(this.lastPreparedPages, adjacentPages, [page]);
    var newAdjacentPages = _.difference(adjacentPages, this.lastPreparedPages);

    _(noLongerPreparedPages).each(function(page) {
      if (!page.isDestroyed) {
        page.unprepare();
      }
    });

    _(newAdjacentPages).each(function(adjacentPage) {
      adjacentPage.prepare();
      adjacentPage.preload();
    });

    this.lastPreparedPages = adjacentPages.concat([page]);
  }
});

pageflow.AdjacentPreparer.create = function(pages, scrollNavigator) {
  return new pageflow.AdjacentPreparer(
    new pageflow.AdjacentPages(
      pages,
      scrollNavigator
    )
  );
};

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
pageflow-13.0.0.beta5 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-13.0.0.beta4 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-13.0.0.beta3 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-13.0.0.beta2 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-13.0.0.beta1 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-12.2.0 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-12.1.0 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-12.0.4 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-12.0.3 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-12.0.2 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-12.0.1 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-12.0.0 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-12.0.0.rc7 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-12.0.0.rc6 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-12.0.0.rc5 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-12.0.0.rc4 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-12.0.0.rc3 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-12.0.0.rc2 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js
pageflow-12.0.0.rc1 app/assets/javascripts/pageflow/slideshow/adjacent_preparer.js