Openseadraon在后台下载

时间:2017-01-20 19:30:22

标签: javascript browser openseadragon

我正在尝试使用openseadragon(OSD)2.2.1版下载完整尺寸的深度变焦图像。 我的图像在服务器上,我可以使用OSD打开它们。我下载它们的步骤是:

  1. 使用
  2. 将图像列表加载到正文中
  3. 使用复选框
  4. 查看要下载的图像
  5. 点击下载'按钮下载
  6. 下载功能具有以下功能:

    • 将图像列表加载到gridview
    • 创建画布并附加到正文
    • 如果不存在则创建OSD查看器
    • 使用以下方式打开第一张图片: viewer.open(tileSources)
    • 添加OSD处理程序' 打开'用于设置源的完整大小。
    • 绘制形状当前图像有它们
    • 添加OSD处理程序' 图块绘制'用于设置变量的值,这是一个简单的时间
    • 设置间隔以检查变量每10秒变化一次。如果变量在最后10秒内没有变化,则意味着绘制了所有图块。
    • 如果使用' File-Saver'来绘制所有图块的下载图像。文库

    OSD查看器的完整大小:

    $("#OSDelement").attr("style", "height: " + viewer.world.getItemAt(0).source.dimensions.y / window.devicePixelRatio) + "px;" +
     "width: " + (viewer.world.getItemAt(0).source.dimensions.x / window.devicePixelRatio) + "px");
    

    该网站的示例模型是: mock-up

    当浏览器的标签处于活动状态时,一切都正常下载(下载需要时间,但它正在完成其工作)。问题是我正在尝试下载背景'。当我进入不同的选项卡时,OSD磁贴停止加载。当浏览器选项卡未激活时,如何强制OSD打开并加载磁贴? 有时它会在每个浏览器会话中标签不活动时开始下载,但瓷砖根本没有绘制。它下载空文件,因为查看器上没有任何图块。根本没有错误。

    请给我一些想法。谢谢!

1 个答案:

答案 0 :(得分:1)

它在后台运行的原因是它使用的是requestAnimationFrame,当您的标签位于后台时,它会暂停。一个解决方法是做类似的事情:

OpenSeadragon.requestAnimationFrame = function(callback) {
    setTimeout(callback, 16);
};