我正在使用Photo Sphere Viewer来显示360张图片。我在底部有一个菜单,里面有其他360张图片。当我单击其中一个图像时,光球会更改查看器中的图像。更改图像大约3次或更多次后,浏览器变慢。
我使用的方法是使用jquery中的"empty()“来擦除旧的全景图像,然后再次加载"photoSphereViewer”,我认为这就是问题所在。由于某些原因,当我使用empty时,它不会删除缓存中的图像,一段时间后,它会变得很慢。我知道有一个用"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 );
}
})
使用旧的方法(清空容器并添加新的全景图)可以工作,但我有这个性能问题。所以我需要找到一种方法来清理缓存或设置全景图,而不是每次都重新创建它。有什么想法吗?谢谢!!
发布于 2019-08-04 14:22:39
最后我找到了一个解决方案。如果有一天有人需要的话,我会把它放在这里的。我最终使用了Pannellum库,并与作者进行了交谈。他给了我一个非常简单有效的解决方案。只需加载一个查看器并使用像"addScene“和"removeScene”这样的方法,garbabe收集器就不会加载,一切都运行得很好。如果有人需要更多信息,这里是帖子:
https://github.com/mpetroff/pannellum/issues/763
干杯!
https://stackoverflow.com/questions/57268844
复制相似问题