Skip to content

Commit 6963622

Browse files
committed
index.html: Avoid OpenSeadragon timer leak when switching images
Closes #5.
1 parent a9d4132 commit 6963622

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

examples/deepzoom/templates/index.html

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,26 @@
66
<script type="text/javascript">
77
$(document).ready(function() {
88
var dzi_data = {{ dzi_data|default('{}')|safe }};
9-
var viewer = new Seadragon.Viewer("view");
10-
viewer.openDzi("{{ slide_url }}", dzi_data["{{ slide_url }}"]);
11-
viewer.config.animationTime = 0.5;
12-
viewer.config.blendTime = 0.1;
9+
var viewer;
10+
11+
function open_slide(url) {
12+
if (viewer) {
13+
// Never reuse an existing viewer to avoid a timer leak
14+
// (OpenSeadragon issue #14)
15+
viewer.close();
16+
$("#view").text("");
17+
}
18+
viewer = new Seadragon.Viewer("view");
19+
viewer.config.animationTime = 0.5;
20+
viewer.config.blendTime = 0.1;
21+
viewer.openDzi(url, dzi_data[url]);
22+
}
23+
24+
open_slide("{{ slide_url }}");
1325
$(".load-slide").click(function(ev) {
1426
$(".current-slide").removeClass("current-slide");
1527
$(this).parent().addClass("current-slide");
16-
var url = $(this).attr('data-url');
17-
viewer.openDzi(url, dzi_data[url]);
28+
open_slide($(this).attr('data-url'));
1829
ev.preventDefault();
1930
});
2031
});

0 commit comments

Comments
 (0)