Browse Source

Stop loading panorama is viewer is destroyed (fixed #1084).

If the viewer is destroyed, we now try to abort loading equirectangular and
cube map panoramas. This appears to work in Chrome but not in Firefox.

No attempt is made to stop loading multires images, since that process is more
complicated.
pull/1121/head
Matthew Petroff 2 years ago
parent
commit
eb50628da1
1 changed files with 9 additions and 1 deletions
  1. +9
    -1
      src/js/pannellum.js

+ 9
- 1
src/js/pannellum.js View File

@@ -71,6 +71,7 @@ var config,
eps = 1e-6,
resizeObserver,
hotspotsCreated = false,
xhr,
destroyed = false;

var defaultConfig = {
@@ -411,7 +412,7 @@ function init() {
onImageLoad();
};
var xhr = new XMLHttpRequest();
xhr = new XMLHttpRequest();
xhr.onloadend = function() {
if (xhr.status != 200) {
// Display error if image can't be loaded
@@ -419,6 +420,7 @@ function init() {
a.href = p;
a.textContent = a.href;
anError(config.strings.fileAccessError.replace('%s', a.outerHTML));
return;
}
var img = this.response;
parseGPanoXMP(img, p);
@@ -3347,6 +3349,12 @@ this.destroy = function() {
destroyed = true;
clearTimeout(autoRotateStart);

if (xhr)
xhr.abort();
if (Array.isArray(panoImage)) {
for (var i = 0; i < 6; i++)
panoImage[i].src = '';
}
if (renderer)
renderer.destroy();
if (listenersAdded) {


Loading…
Cancel
Save