Ticket #38797: 38797.3.patch
File 38797.3.patch, 4.2 KB (added by , 5 years ago) |
---|
-
src/wp-admin/js/customize-controls.js
diff --git a/src/wp-admin/js/customize-controls.js b/src/wp-admin/js/customize-controls.js index 5987bf4ed..cdc44bdee 100644
a b 3653 3653 }; 3654 3654 3655 3655 // Debounce to prevent hammering server and then wait for any pending update requests. 3656 previewer.refresh = _.debounce( 3657 ( function( originalRefresh ) { 3658 return function() { 3659 var isProcessingComplete, refreshOnceProcessingComplete; 3660 isProcessingComplete = function() { 3661 return 0 === api.state( 'processing' ).get(); 3662 }; 3663 if ( isProcessingComplete() ) { 3664 originalRefresh.call( previewer ); 3665 } else { 3666 refreshOnceProcessingComplete = function() { 3667 if ( isProcessingComplete() ) { 3668 originalRefresh.call( previewer ); 3669 api.state( 'processing' ).unbind( refreshOnceProcessingComplete ); 3670 } 3671 }; 3672 api.state( 'processing' ).bind( refreshOnceProcessingComplete ); 3673 } 3674 }; 3675 }( previewer.refresh ) ), 3676 previewer.refreshBuffer 3677 ); 3656 previewer.refresh = function() { 3657 var isProcessingComplete, 3658 refreshOnceProcessingComplete, 3659 dfd = $.Deferred(), 3660 _resolveRefresh = function( processing ) { 3661 api.Previewer.prototype.refresh.call( previewer ) 3662 .done( function( server_data ) { 3663 dfd.resolve( server_data ); 3664 } ) 3665 .fail( function( reason ) { 3666 dfd.resolve( reason ); 3667 } ) 3668 .always( function() { 3669 if ( true === processing.unbind ) { 3670 api.state( 'processing' ).unbind( refreshOnceProcessingComplete ); 3671 } 3672 }); 3673 }; 3674 setTimeout( function() { 3675 isProcessingComplete = function() { 3676 return 0 === api.state( 'processing' ).get(); 3677 }; 3678 if ( isProcessingComplete() ) { 3679 _resolveRefresh( { unbind : false } ); 3680 } else { 3681 refreshOnceProcessingComplete = function() { 3682 if ( isProcessingComplete() ) { 3683 _resolveRefresh( { unbind : true }); 3684 } 3685 }; 3686 api.state( 'processing' ).bind( refreshOnceProcessingComplete ); 3687 } 3688 }, previewer.refreshBuffer );//setTimeout 3689 return dfd.promise(); 3690 };//previewer.refresh 3691 3692 3678 3693 3679 3694 previewer.container = api.ensure( params.container ); 3680 3695 previewer.allowedUrls = params.allowedUrls; … … 3925 3940 * @returns {void} 3926 3941 */ 3927 3942 refresh: function() { 3928 var previewer = this, onSettingChange ;3943 var previewer = this, onSettingChange, dfd = $.Deferred(); 3929 3944 3930 3945 // Display loading indicator 3931 3946 previewer.send( 'loading-initiated' ); … … 3955 3970 previewer.targetWindow( loadingFrame.targetWindow() ); 3956 3971 previewer.channel( loadingFrame.channel() ); 3957 3972 3958 onceSynced = function( ) {3973 onceSynced = function( server_data ) { 3959 3974 loadingFrame.unbind( 'synced', onceSynced ); 3960 3975 if ( previewer._previousPreview ) { 3961 3976 previewer._previousPreview.destroy(); … … 3963 3978 previewer._previousPreview = previewer.preview; 3964 3979 previewer.deferred.active.resolve(); 3965 3980 delete previewer.loading; 3981 dfd.resolve( server_data ); 3966 3982 }; 3967 3983 loadingFrame.bind( 'synced', onceSynced ); 3968 3984 … … 3985 4001 if ( 'cheatin' === reason ) { 3986 4002 previewer.cheatin(); 3987 4003 } 4004 dfd.reject( reason ); 3988 4005 }); 4006 return dfd.promise(); 3989 4007 }, 3990 4008 3991 4009 login: function() { -
src/wp-includes/js/customize-preview.js
diff --git a/src/wp-includes/js/customize-preview.js b/src/wp-includes/js/customize-preview.js index f51c45ff9..eecb416fd 100644
a b 733 733 $.each( events, function( event, args ) { 734 734 api.preview.trigger( event, args ); 735 735 }); 736 api.preview.send( 'synced' ); 736 api.server_data = api.server_data || new api.Value( {} ); 737 api.trigger( 'before_synced', api.server_data() );//<= developers can set the api.server_data() here, before it gets sent 738 api.preview.send( 'synced', api.server_data() ); 737 739 }); 738 740 739 741 api.preview.bind( 'active', function() {