Я новичок в веб-дизайне. Пожалуйста, поправьте меня, если мое понимание неверно. Я ищу советы, которые могут избежать двусторонней связи между браузерами и сервером в следующих сценариях.
Представьте, что javascript сначала загружает все 30 ~ 50 изображений с сервера. Эти изображения затем используются для создания миниатюрных изображений, каждое размером 60 на 60 пикселей или около того, для выбора пользователя. Этот эффект достигается с помощью CSS и некоторой свободно доступной библиотеки JavaScript.
После нажатия на одно из уменьшенных изображений javasrcipt размещает это изображение на более крупном холсте. Размер большего изображения определяется в соответствии с его исходным размером около 900 × 600 пикселей или более. Чтобы получить исходный размер изображения, я кодирую JavaScript на стороне клиента, аналогично следующему:
var img=new Image();
img.src="uploaded1.jpg";
var w,h;
w=img.width;
h=img.height;
Моя проблема в том, что такой дизайн кажется очень неэффективным с точки зрения трафика, потому что каждое изображение будет загружено 3 раза:
- для рендеринга в галерею изображений
- после выполнения кода javascript в
img.src="uploaded1.jpg";
- для рендеринга изображения большого размера после добавления узла DOM с помощью javascript:
<img src="uploaded1.jpg" alt="big image"/>
Кроме того, я хочу разрешить пользователям загружать больше изображений в любое время и добавлять эти изображения в галерею изображений. Чтобы достичь этого, должен быть разработан некоторый javascript для загрузки с сервера точно таких же изображений, которые этот же браузер только что загрузил на сервер, чтобы их можно было добавить в DOM следующим образом:
<img src="new1.jpg" alt="new image 1"/>
<img src="new2.jpg" alt="new image 2"/>
Что не имеет смысла для меня, так это круговые обходы между браузерами и сервером, сделанные этими изображениями. Очевидно, что браузеру нет необходимости перезагружать те же изображения с сервера, когда браузер получает информацию об этих изображениях из первых рук.
Поскольку это тот же браузер, который загружает эти файлы изображений и отображает изображения, теоретически должен существовать какой-то способ сказать браузеру повторно использовать эти изображения - отображать их либо до, либо после загрузки. Страница должна быть спроектирована так, чтобы работать неэффективно, только потому, что в мире HTML нет возможности для javascript передавать изображение из памяти в браузер, манипулируя DOM.
SVG локальная ссылка на IRI может быть полезна. Я могу реализовать элемент <image>
в <defs>
, но я не уверен, что браузеры (особенно IE 9) снова будут вслепую получать одно и то же изображение с сервера каждый раз, когда на этот <image>
ссылаются другие элементы. Просвещения о SVG будут высоко оценены.
Я также читал статьи о кэшировании http / браузера и у меня сложилось впечатление, что кэширование в браузере ненадежно, поскольку пользователи могут отключить кэш вручную, а размер кэша можно установить слишком маленьким для большого количества изображений. Кроме того, механизм кэширования не может исключить ненужную обратную передачу, как в ранее упомянутом сценарии «загрузить-затем-загрузить-изображение-добавить-в-галерею».
Кроме того, вспышка - это последнее, что я хочу изучать и использовать.
С наилучшими пожеланиями,
* +1039 * CN
enter code here