У меня есть элементарный API удаленного управления для ПК, который принимает команды через AJAX (перемещение мыши, щелчок, отправка ключа и т. Д.). Также он отображает изображения для указанного экрана
API имеет интерфейс, который в основном работает на jQuery.
У меня есть тег img
, который показывает снимок экрана текущего выбранного экрана и события перемещения / щелчка мыши, которые вызывают соответствующие API за кулисами.
Изображение экрана в настоящее время обновляется следующим образом:
function UpdateScreen() {
$("#Screenshot").attr("src", "./AJAX/UI/GetScreen.aspx?Screen=" + encodeURIComponent(targetScreen) + "&Date=" + encodeURIComponent(Date()));
setTimeout('UpdateScreen()', 3000);
}
Что работает нормально, но смехотворно неэффективно - Либо изображение загружается менее чем за 3 секунды, в этом случае у меня частота обновления ниже, чем должно быть, или более чем за 3 секунды, когда старый запрос прерывается (например, мобильный более 2G).
Как я могу перезагрузить изображение, как только оно завершит загрузку? Более того, есть ли способ сделать это так же, как вызов AJAX, а не полагаться на браузер? Таким образом, я могу ловить сбои, иметь индикатор выполнения, а также контролировать, как изображение перерисовывается (используя что-то вроде обратного буфера).
Заранее спасибо