Баг с загрузкой изображений
Доброго времени суток, уважаемые пользователи форума. :)
В общем, сделал AJAX-навигацию на сайте, т.е., при клике на ссылку, загружается контент с этого адреса ссылки, а адрес в браузерной строке меняется с помощью history.pushState. Проблема в следующем, если возвращаемся по истории назад, а потом переходим по какой-нибудь ссылке, то новые изображения (которые не были ранее загружены) перестают загружаться и вместо них пустая область с рамкой и alt'ом изображения, как-будто бы его не существует. Раньше уже замечал этот баг в ВКонтакте, но как-то не придавал этому значения пока сам не столкнулся с этим. Кто-нибудь знает как побороть подобное? Буду благодарен за помощь. З.Ы.: браузер Opera 12. |
Неужели никто с таким не сталкивался? :blink:
|
Я с таким не сталкивался, но интересно,
Проверяли пути у изображений? Что сервер вообще возвращает или же загрузка совсем не происходит? |
С путями всё в порядке, загрузка вообще не происходит. Видимо браузер думаю, что при возвращении в историю там уже ничего грузить не надо, мол типо всё уже должно быть в кэше.
Вот попробуйте зайти на чью-нибудь страницу в ВКонтакте, затем зайдите на какую-нибудь страницу из друзей этого пользователя, и у одного из этих друзей ещё потом зайдите на чью-нибудь страницу из друзей. А вот теперь нажмите браузерную кнопку "Назад", и как видите, в рандомном списке друзей этого пользователя - новые друзья которые не показывались ранее - у них аватары не загружаются. Надеюсь, я обьяснил понятно. |
Где-то я про это вроде читал, но уже и не вспомню.
Попробуй пройтись по изображениям и заменить их все, используя replaceChild. |
Как-то это не правильно будет, при каждом переходе на другую страницу пробегаться по всем изображениям и заменять их на самих себя, по крайней мере я так считаю. :-?
Должно же быть другое, более правильное решение. |
Как я понимаю это баг и как следственно с багами красиво не получится:)
Можешь ещё попробовать так: img { content: url(attr(src)); } Если уж тот вариант не нравится, но этот ещё хуже=) |
Цитата:
Во первых, потому что content работает совместно с ::after и ::before, во вторых, даже если и добавить ::after и ::before, то все равно не будет работать, так как они не работают с такими элементами как img, input и т.д. ;) |
Ruslan_xDD,
Да, что-то я намудрил:) Ну вообще это практически работает, в некоторых браузера, допустим в той же опере вот это работает: <style type="text/css"> img { content: url('http://javascript.ru/forum/image.php?u=20699&dateline=1392129498'); } </style> <img /> Но с атрибутом почему-то не хочет связываться, возвращает пустое значение:*( |
Часовой пояс GMT +3, время: 15:44. |