Почему некоторые PDF-файлы зависают при загрузке в IE, когда их обслуживает Lighttpd? - PullRequest
2 голосов
/ 07 января 2009

У нас есть несколько PDF-файлов, размещенных с использованием Lighttpd, но когда они загружаются в IE (7.0.5730.13), загрузка файла заканчивается в конце и не завершается. Например

http://static.vouchercodes.co.uk/printable/87-burger-king-voucher.pdf

http://static.vouchercodes.co.uk/printable/10-gbk.pdf

Это прекрасно работает в Firefox (3.0.5) как в OSX 10.5 и Windows XP, но не в IE 7.

Скриншот зависшей загрузки можно увидеть по адресу http://www.mytton.net/so-pdf-q.png

Он не локализован на одной машине и реплицирован на других компьютерах с Windows IE7. Эта проблема затрагивает только файлы PDF на сайте vouchercodes.co.uk, так как другие сайты с файлами PDF работают нормально.

Он также был реплицирован с другими версиями IE7 / IE6, но не всегда.

Ответы [ 2 ]

3 голосов
/ 07 января 2009

Я считаю, что это проблема постепенной загрузки плагина acrobat под IE.

Ваш сервер lighttpd отвечает на HTTP/1.1 206 Partial Content, что иногда приводит к странному замедлению процесса загрузки в клиенте acrobat

Некоторые приводят к решению проблемы:

  • Не используйте параметр «Сохранить как оптимизированный для быстрого просмотра в Интернете» при создании файла PDF
  • Снимите флажок «Разрешить фоновую загрузку всего файла» в программе Acrobat Reader
  • Отключить байт-серверную емкость сервера (но это явно не рекомендуется)
2 голосов
/ 07 января 2009

Проблема связана с байтовым обслуживанием. См. Раздел Byteserving http://httpd.apache.org/docs/1.3/misc/known_client_problems.html

Плагин Adobe Acrobat Reader делает широкое использование байтов и предшествующих до версии 3.01 поддерживает только multipart / x-byterange ответ. К сожалению, нет ни малейшего понятия, что это это плагин, который делает запрос. Если плагин используется с навигатором, выше обходной путь работает нормально. Но если плагин используется с MSIE 3 (на Windows) обходной путь не будет работать потому что MSIE 3 не дает Range-Request подсказывает, что навигатор делает. Чтобы обойти это, Apache Особые случаи "MSIE 3" в Пользователь-агент и обслуживает многокомпонентные / X-byteranges. Обратите внимание, что Необходимость этого с MSIE 3 на самом деле из-за плагина Acrobat, не из-за браузера.

Это также проблема в Lighttpd, задокументированная на http://redmine.lighttpd.net/issues/show/171 с обходным решением (проверено и работает) на note 8 .

...