Throttle scrolling to prevent requests from firing too quickly (OHIF-39)
This commit is contained in:
parent
81b011f111
commit
f90536c0d3
@ -1,14 +1,24 @@
|
|||||||
|
const slideTimeoutTime = 40;
|
||||||
|
let slideTimeout;
|
||||||
|
|
||||||
Template.imageControls.events({
|
Template.imageControls.events({
|
||||||
'change #imageSlider': function(e) {
|
'input #imageSlider, change #imageSlider': function(e) {
|
||||||
|
// Note that we throttle requests to prevent the
|
||||||
|
// user's ultrafast scrolling from firing requests too quickly.
|
||||||
|
clearTimeout(slideTimeout);
|
||||||
|
slideTimeout = setTimeout(() => {
|
||||||
// Using the slider in an inactive viewport
|
// Using the slider in an inactive viewport
|
||||||
// should cause that viewport to become active
|
// should cause that viewport to become active
|
||||||
var slider = $(e.currentTarget);
|
const slider = $(e.currentTarget);
|
||||||
var newActiveElement = slider.parents().eq(2).siblings('.imageViewerViewport').get(0);
|
const newActiveElement = slider.parents().eq(2).siblings('.imageViewerViewport').get(0);
|
||||||
setActiveViewport(newActiveElement);
|
setActiveViewport(newActiveElement);
|
||||||
|
|
||||||
// Subtract 1 here since the slider goes from 1 to N images
|
// Subtract 1 here since the slider goes from 1 to N images
|
||||||
// But the stack indexing starts at 0
|
// But the stack indexing starts at 0
|
||||||
var newImageIdIndex = parseInt(slider.val(), 10) - 1;
|
const newImageIdIndex = parseInt(slider.val(), 10) - 1;
|
||||||
switchToImageByIndex(newImageIdIndex);
|
switchToImageByIndex(newImageIdIndex);
|
||||||
|
}, slideTimeoutTime);
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@ -564,17 +564,14 @@ Template.imageViewerViewport.onDestroyed(function() {
|
|||||||
|
|
||||||
Template.imageViewerViewport.events({
|
Template.imageViewerViewport.events({
|
||||||
'ActivateViewport .imageViewerViewport': function(e) {
|
'ActivateViewport .imageViewerViewport': function(e) {
|
||||||
console.log('activateViewport');
|
|
||||||
log.info('imageViewerViewport ActivateViewport');
|
log.info('imageViewerViewport ActivateViewport');
|
||||||
setActiveViewport(e.currentTarget);
|
setActiveViewport(e.currentTarget);
|
||||||
},
|
},
|
||||||
'click .imageViewerViewport': function(e) {
|
'click .imageViewerViewport': function(e) {
|
||||||
console.log('click imageViewerViewport handler');
|
|
||||||
var viewportIndex = $('.imageViewerViewport').index(e.currentTarget);
|
var viewportIndex = $('.imageViewerViewport').index(e.currentTarget);
|
||||||
Session.set('activeViewport', viewportIndex);
|
Session.set('activeViewport', viewportIndex);
|
||||||
},
|
},
|
||||||
'CornerstoneToolsMouseDoubleClick .imageViewerViewport, CornerstoneToolsDoubleTap .imageViewerViewport': function(e) {
|
'CornerstoneToolsMouseDoubleClick .imageViewerViewport, CornerstoneToolsDoubleTap .imageViewerViewport': function(e) {
|
||||||
console.log('CornerstoneToolsMouseDoubleClick handler');
|
|
||||||
var viewportIndex = $('.imageViewerViewport').index(e.currentTarget);
|
var viewportIndex = $('.imageViewerViewport').index(e.currentTarget);
|
||||||
layoutManager.toggleEnlargement(viewportIndex);
|
layoutManager.toggleEnlargement(viewportIndex);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user