Skip to content

Commit 478c669

Browse files
committed
speed up splom.clean
1 parent aaf6312 commit 478c669

File tree

1 file changed

+11
-12
lines changed

1 file changed

+11
-12
lines changed

src/traces/splom/base_plot.js

+11-12
Original file line numberDiff line numberDiff line change
@@ -168,20 +168,19 @@ function makeGridData(gd) {
168168
}
169169

170170
function clean(newFullData, newFullLayout, oldFullData, oldFullLayout) {
171-
oldLoop:
172-
for(var i = 0; i < oldFullData.length; i++) {
173-
var oldTrace = oldFullData[i];
174-
175-
if(oldTrace.type === 'splom') {
176-
for(var j = 0; j < newFullData.length; j++) {
177-
var newTrace = newFullData[j];
171+
var lookup = {};
172+
var i;
178173

179-
if(oldTrace.uid === newTrace.uid && newTrace.type === 'splom') {
180-
continue oldLoop;
181-
}
174+
if(oldFullLayout._splomScenes) {
175+
for(i = 0; i < newFullData.length; i++) {
176+
var newTrace = newFullData[i];
177+
if(newTrace.type === 'splom') {
178+
lookup[newTrace.uid] = 1;
182179
}
183-
184-
if(oldFullLayout._splomScenes) {
180+
}
181+
for(i = 0; i < oldFullData.length; i++) {
182+
var oldTrace = oldFullData[i];
183+
if(!lookup[oldTrace.uid]) {
185184
var scene = oldFullLayout._splomScenes[oldTrace.uid];
186185
if(scene && scene.destroy) scene.destroy();
187186
// must first set scene to null in order to get garbage collected

0 commit comments

Comments
 (0)