2014-01-23 2 views
0

Я обнаружил, что некоторые параметры использования сайта на изображение src как ?v=1390510765392параметров на <img> теге

, что он используется?

<img src="image.jpg?v=1390510765392" /> 

Найдено на примере that Angularjs

+0

Дубликат http://stackoverflow.com/questions/11397942/why-querystrings-after-images-css-files – steveax

+0

Дубликат получает 2 upvote Im получая 2 downvote Ахахами – Merlin

ответ

2

я могу думать о двух возможных применений ...

  1. Если параметр случайным образом изменяется каждый раз, когда страница загружается, то это общее средство предотвращения кэширования изображения браузером. Это заставит браузер всегда запрашивать новый (поскольку URL-адрес отличается), так что пользователь всегда имеет последнюю версию.

  2. Если image.jpg не на самом деле изображение, а код управляемой стороны сервера ресурс, который отвечает с изображением, то параметры URL будут способом передать идентификатор для этого ресурса, чтобы определить, какие конкретные изображения данные для загрузки. (Такие, как, если изображение, или, по крайней мере, ссылки на них, которые хранятся в базе данных.)

Первый, весьма вероятно, что здесь происходит, хотя второй, конечно, возможно.

+0

Я использую технику # 1 с фоновой фотографией CSS, которые, как правило, кэшируются более агрессивно, чем изображения HTML (в зависимости от браузера). – Aaron

1

Это позволяет имя изображения, чтобы оставаться такой же, но путем добавления строки запроса он предотвращает браузеры с использованием кэшированные версии изображения. Строка запроса по существу делает URL-адрес «новым», поэтому браузер переходит и получает то, что, по его мнению, является новым ресурсом.

+1

Я думаю, назвав его «номер версии» немного вводит в заблуждение. – j08691

+0

Только немного, если вообще. Но поскольку эта часть не важна, я удалил ее из ответа. –

1

Он используется, чтобы избежать изображения, чтобы обслуживаться из кэша браузера (потому что URL отличается в случае изменения даты и это не имеет никакого эффекта на изображениях)

+0

Короткий, но хороший ответ спасибо – Merlin

0

Другая возможность заключается в том, чтобы избежать промывки ресурсов CDN, когда изображение меняется, не позволяя пользователю увидеть старую версию, если изображение.

2

Атрибут элемента src просто передавая переменную GETv к серверу в конечной точке image.jpg со значением 1390510765392. Не рассматривая серверный код, непонятно, почему разработчик это делает. Несколько возможностей приходят на ум:

  • image.jpg может быть на самом деле сценарий (или истолковано один), несмотря на .jpg расширения, в этом случае возможно, что 1390510765392 является лексема ресурс, используемый для получения конкретного изображения.
  • Частое использование такого параметра заключается в том, чтобы просто изменить атрибут src, фактически не изменяя то, на что он указывает, тем самым аннулируя любой кеш-клиент (или посредник) на стороне клиента или заставляя его перезагружать, и в этом случае сервер сам, вероятно, игнорирует v.
Смежные вопросы