【问题标题】:How to make "Openseadragon" prioritize tile requests?如何让“Openseadragon”优先考虑磁贴请求?
【发布时间】:2019-11-08 15:39:57
【问题描述】:

我正在使用 Openseadragon 来显示在服务器上运行的整个幻灯片图像。 当互联网连接不是很快并且在图像内导航时​​,我有许多等待队列的请求需要完成,直到我想要查看的特定区域被加载和呈现。 有没有办法让新请求优先于旧请求? 我认为它确实会改善用户体验。

我尝试更改一些 Openseadragon 参数以改善用户体验,但我认为应该有更好的解决方案。

我还发现下面的代码取消了请求,但也清除了已经渲染和缓存的所有内容,因此每个图块都应该重新加载。

我也尝试取消所有待处理的请求,但没有新请求开始,因此取消的图块永远不会加载。

window.stop()
viewer = viewport.viewer
var oldImage = viewer.world.getItemAt(0);
var oldBounds = oldImage.getBounds();
var oldSource = oldImage.source;
// Modify tile source as needed
viewer.addTiledImage({
   tileSource: oldSource,
   x: oldBounds.x,
   y: oldBounds.y,
   width: oldBounds.width, // It'll do height automatically based on aspect ratio
   success: function() {
       viewer.world.removeItem(oldImage);
   }
});

我想取消挂起的请求并创建新请求,或者只是将新请求优先于旧请求,以便用户可以更快地看到新图块并在后台加载旧图块。 我不希望用户只是等待图像加载并继续等待加载刚刚通过的图块,需要在他们正在寻找的实际图块之前加载。

有什么想法吗? 提前谢谢你。

【问题讨论】:

    标签: openseadragon openslide


    【解决方案1】:

    默认情况下,OpenSeadragon 会尝试同时加载浏览器允许的尽可能多的图像。如果用户在这些图像传输过程中导航离开,它不会取消它们的加载。您可以通过在创建查看器时将imageLoaderLimit: 1 包括在您的选项中,要求其将磁贴负载一次限制为 1 个,从而针对低带宽进行调整。

    【讨论】:

      猜你喜欢
      • 2022-06-16
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 2018-11-25
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      相关资源
      最近更新 更多