Как сделать так, чтобы «Openseadragon» назначал приоритет плиткам? - PullRequest
0 голосов
/ 08 ноября 2019

Я использую 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);
   }
});

Я хочу отменить ожидающие запросы и сделать новые или просто расставить приоритеты для новых запросов над старыми, чтобы пользователь мог быстрее видеть новые плитки и загружать старые плитки в фоновом режиме. Я не хочу, чтобы пользователь просто ждал загрузки изображения и продолжал ждать загрузки плиток, которые только что прошли, которые нужно загрузить до фактических плиток, на которые они смотрят.

Есть мысли? Заранее спасибо.

1 Ответ

0 голосов
/ 15 ноября 2019

По умолчанию OpenSeadragon пытается загрузить столько изображений одновременно, сколько позволяет браузер. Если пользователь уходит во время передачи этих изображений, это не отменяет их загрузку. Вы можете настроить это для низкой пропускной способности, попросив ограничить загрузку плиток до 1, включив imageLoaderLimit: 1 в ваши опции при создании вашей программы просмотра.

...