1

我正在使用 Photo Sphere Viewer 来显示 360 度图像。我在底部有一个带有其他 360 度图像的菜单。当我单击这些图像之一时,光球会更改查看器中的图像。更改图像大约 3 次或更多次后,浏览器变慢。

我正在使用的方法是来自 jquery 的“empty()”来擦除旧的全景图像,然后再次加载“photoSphereViewer”,我认为这就是问题所在。出于某种原因,当我使用空时不会删除缓存上的图像,一段时间后它会变慢。我知道存在一种使用“setPanorama”更改全景的方法,但是当我尝试时,控制台显示 PSV(变量)不是函数的错误。

        //here is the panorama add it to the dom
        $(window).load(function(){

                PSV = new PhotoSphereViewer({
                    panorama: '',
                    container: 'photosphere',
                    default_fov: 65,
                    mousewheel: false,
                    loading_img:'img/loader3.gif',
                    cache_texture:0,
                    transition:{duration:1500, loader:true},

                }); 

        });

        //then a function with ajax (im using php) that set the URL:

            $.ajax({

            type:'post',
            url:'query/menu_r.php',
            data:{consulta:consulta, codigoFull:codigoFull},
            success:function(data){

                ruta = "content/"+recinto+"/"+vista+"/cu"+silestone+"/"+calidad+"/";
                ruta = ruta+data;

                //vacío container del 360.
                //$("#photosphere").empty();

                PSV.setPanorama(ruta, null, true );



            }        
    })

使用旧方法(清空容器并添加新全景图)可以工作,但我遇到了这个性能问题。所以我需要找到一种方法来清理缓存或设置全景图,而不是每次都重新创建它。任何想法?谢谢!!

4

1 回答 1

1

最后我找到了解决方案。如果有一天有人需要它,我会把它放在这里。我终于使用了 Pannellum 库,并与作者交谈。他给了我一个非常简单有效的解决方案。只需加载一个查看器并使用诸如“addScene”和“removeScene”之类的方法,garbabe 收集器不会加载,并且一切运行良好。如果有人需要更多信息,这里是线程:

https://github.com/mpetroff/pannellum/issues/763

干杯!

于 2019-08-04T06:22:38.837 回答