2013-11-18 4 views
0

Предположим, что на нескольких веб-страницах отображается несколько десятков миниатюр (10 эскизов на страницу). Я хотел бы загрузить их как можно быстрее.Загрузите несколько эскизов с одним HTTP-запросом

Имеет ли смысл получить несколько эскизов с одним HTTP-запросом (один эскиз ~ 10K)? Как бы вы предложили сделать это с помощью JavaScript?

+0

Вы хотите получить 10 отдельных файлов (изображений) с 1 запросом? – putvande

+0

Да. Например, я могу объединить их на серверной стороне «на лету». В противном случае я могу объединить их в автономном режиме и сохранить в одном файле. – Michael

ответ

1

Что касается производительности сети, это действительно имеет смысл. Вы могли бы, например, поставить заранее определенное количество эскизов в одном изображении.

На стороне клиента вы можете рассматривать этот образ, как с помощью "CSS Sprite" tecnique (http://www.w3schools.com/css/css_image_sprites.asp)

3

Вы можете, но вы должны прыгать через несколько обручей:

1) Base-64 закодировать изображения на сервере в виде одного файла.

2) Отправьте их клиенту в виде одного запроса blob через AJAX.

3) Декодируйте изображения на куски.

4) Используйте URI данных, чтобы вставить их в DOM.

... не стоит.

1

Если вам очень важно отправить изображения как можно быстрее, я бы посчитал их отправкой в ​​качестве спрайта. К сожалению, на заднем плане это может быть несколько сложно, если предоставленные изображения могут отличаться. Если они статичны и одинаковы для каждого пользователя, это проще, поскольку вы можете вручную подготовить изображения и код переднего конца, чтобы отобразить правильные части изображения.

В сочетании с подходом спрайта было бы также полезно включить прогрессивную/чересстрочную загрузку, чтобы как можно быстрее обеспечить видимые результаты.

Смежные вопросы