WordPress.org

Make WordPress Core

Ticket #24056: 24056-prioritize.patch

File 24056-prioritize.patch, 2.0 KB (added by a.hoereth, 11 months ago)

Prioritize revision fetching according to temporal distance to the handle/handles

  • wp-admin/includes/ajax-actions.php

     
    22092209                                 ( 0 != $right_handle_at && $count > ( $right_handle_at - 2 ) ) ) ) { 
    22102210                                $all_the_revisions[] = array ( 
    22112211                                        'ID' => $revision->ID, 
     2212                                        'timestamp' => strtotime($revision->post_modified) 
    22122213                                ); 
    22132214                                continue; 
    22142215                        } 
     
    22172218                                 ( 0 != $left_handle_at && $count < $right_handle_at ) ) ) { 
    22182219                                $all_the_revisions[] = array ( 
    22192220                                        'ID' => $revision->ID, 
     2221                                        'timestamp' => strtotime($revision->post_modified) 
    22202222                                ); 
    22212223                                continue; 
    22222224                        } 
     
    23052307                                'restoreLink'  => urldecode( $restore_link ), 
    23062308                                'previousID'   => $previous_revision_id, 
    23072309                                'isCurrent'    => $is_current_revision, 
     2310                                'timestamp'    => strtotime($revision->post_modified) 
    23082311                        ); 
    23092312                } 
    23102313                $previous_revision_id = $revision->ID; 
  • wp-admin/js/revisions.js

     
    6868                                        self.rightDiff = self.revisions.indexOf( revision ) + 1; 
    6969                        }); 
    7070 
     71                        // load revisions in order of their chronological closeness to the handles 
     72                        var left  = this.singleRevision ? 0 : self.revisions.models[self.leftDiff -1].get('timestamp'), 
     73                                right = self.revisions.models[self.rightDiff-1].get('timestamp'); 
     74                        revisionsToLoad = _.sortBy( revisionsToLoad, function( model ) { 
     75                                var t = model.get('timestamp'), 
     76                                        y = Math.abs( t - right ), 
     77                                        x = Math.abs( t - left ); 
     78                                return _.min([x,y]); 
     79                        }); 
     80 
    7181                        _.each( revisionsToLoad, function( revision ) { 
    7282                                        _.delay( function() { 
    7383                                                revision.fetch( { 
     
    793803                        }); 
    794804                }, 
    795805 
     806                comparator: function(item) { 
     807                        return item.get('timestamp'); 
     808                }, 
     809 
    796810                url: function() { 
    797811                        return ajaxurl + 
    798812                                '?action=revisions-data' +