У меня есть вещь, которую я делаю, когда мне нужна веб-страница для потоковой передачи серии изображений с локального клиентского компьютера. У меня здесь очень простой прогон: http://jsbin.com/idowi/34
Код очень прост
setTimeout ( "refreshImage()", 100 );
function refreshImage(){
var date = new Date()
var ticks = date.getTime()
$('#image').attr('src','http://127.0.0.1:2723/signature?'+ticks.toString());
setTimeout ("refreshImage()", 100 );
}
По сути, на клиентском компьютере используется панель подписи. Мы хотим, чтобы подпись отображалась на веб-странице, и чтобы они видели, как они подписывают ее на веб-странице (на панели нет ЖК-дисплея, чтобы показать ее прямо здесь). Поэтому я настроил простой локальный HTTP-сервер, который получает изображение того, как выглядит текущее состояние панели подписи, и отправляется в браузер.
С этим нет проблем ни в одном браузере (протестированном в IE7, 8 и Chrome), кроме Firefox, где он чрезвычайно медленный и нервный и не соответствует скорости 10 FPS. У кого-нибудь есть идеи как это исправить? Я пытался создать очень простую двойную буферизацию в javascript, но это только ухудшило ситуацию.
Также для получения дополнительной информации кажется, что Firefox выполняет javascript с правильной частотой кадров, поскольку на сервере запросы поступают с постоянной скоростью. Но изображения обновляются только непоследовательно: от 5 раз в секунду до 0 раз в секунду (для обновления требуется 2 секунды)
Также я пробовал использовать разные форматы изображений с одинаковыми результатами. Форматы, которые я пробовал, включают в себя растровые изображения, PNG и GIF (GIF вызвали небольшую проблему в Chrome с мерцанием)
Возможно ли, что Firefox каким-то образом кэширует мои изображения, вызывая небольшое отставание? Я отправляю эти заголовки, хотя:
Pragma-directive: no-cache
Cache-directive: no-cache
Cache-control: no-cache
Pragma: no-cache
Expires: 0