|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.07.2015, 15:34 | #1 | |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Имеется страница, в ней по таймеру на Jquery перезагружается рисунок.
Как можно по проще перезагружать только когда у картинке на сервере изменится дата создания. Погуглил, нашел такое: Цитата:
1)Не понимаю как здесь должен запускаться php файл, если запрос только на картинку 2) как объяснить jQuery когда загружать с сервера, а когда не обновлять вообще P.S. Рисунок jpg . На сервере стоит nginx и в правилах стоит кэширование данных рисунков, менять которое мне не следует, так как там у меня еще кое что крутиться. Я, конечно могу сделать по своему: 1)При перезаливке рисунка создавать текстовый файл( например number.txt) с номером изменения рисунка 2)на js создать переменную номера изменения рисунка (например jsnumber) 3) JQuery каждые пол секунды делает запрос к php скрипту, который сверяет номер переменной jsnumber и номера в текстовом файле number.txt. Выдает ответ для jQuery нужно ли перезагрузить картинку и jQuery перезагружает ее если нужно. Таким образом, если реально картинка на сервере перезагружается примерно со скорость 1 раз в секунду, то при проверке каждые пол секунды картинка должна перезагружаться примерно с такой же средней скоростью как 1 раз в секунду. Подскажите как бы сделать просто и правильно, есть ли смысл использовать мой подход? Последний раз редактировалось Stilet; 11.07.2015 в 16:44. |
|
11.07.2015, 16:42 | #2 |
Участник клуба
Регистрация: 08.03.2008
Сообщений: 1,537
|
Как я мыслю, все имхо.
На странице для рисунков которые требуют проверки добавлять атрибут для тега img, например, data-filemtime="132423535334" где цифры, дата последней модификации файла. Посылать ajax запрос в котором есть данные о имени файла и дате его посленей модификации. На серваке сравнивать даты модификаций (filemtime) если есть разбежности, то отсылать обратно инфу об этом. На странице обновить рисунок и значение атрибута data-filemtime. |
11.07.2015, 17:59 | #3 |
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
В любом запросе есть инфа о том, обновился ли файл. Прямо в заголовках запроса http!
Почему об этом рассказывает фронтендер в разделе бэкенда? Как запрашивать вовремя файл, "оповестить" об этом клиент? Вариантов множество, от древних спама на сервер с запросом о готовности или лонгпула до новеньких веб-соккетов. Все варианты входят в либу socket.io по ниспадающей по поддержке браузерами.
Alar, верни репу!
|
11.07.2015, 18:40 | #4 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Я думаю не стоит в моей задаче городить веб сокеты, к тому же я их не изучал вовсе. Мне нужно обновлять один рисунок с частотой около 1 раз в секунду, размер рисунка 100-200кбайт
|
11.07.2015, 19:10 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
11.07.2015, 21:45 | #6 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
|
12.07.2015, 14:56 | #7 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Я сделал для пробы такое:
1)Раз в 2 секунды Jquery посылаем запрос к php скрипту 2) скрипт выдает строку последнего обновления данного рисунка на сервере 3) я проверяю есть такое же значение строки в переменной js. Если есть то ничего не делаю, т.е остается тоже самое изображение. Если строка отличается то записываю новую строку даты изменения в переменную js и принудительно загружаю картинку с сервера путем прибавления к пути рисунка: Код:
4) ну и если рисунка вообще нету на сервере скрипт возвращает пустую строку, в этом случае я подменяю рисунком ошибки. Этот метод лучше или хуже предложенных выше? В чем лучше или хуже? Сейчас использовал локальный сервер. И почему то бывает что рисунок не загружается. Может быть, когда происходит запись рисунка на диск его нельзя читать? Последний раз редактировалось Illusiony; 12.07.2015 в 17:09. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ajax - реализовать, чтобы новые задания появлялись без перезагрузки страницы, когда пользователь находится на странице заданий | kuba1981 | JavaScript, Ajax | 9 | 27.01.2016 23:16 |
виснуть игры на ноуте любые когда он не зарежается , как только начинает заряжаться становить все норм . это нормальное явления | igor 91 | Свободное общение | 1 | 02.04.2012 14:06 |
Передача данных из ячеек нас странице asp.net в файл Excel хранящийся на сервере | SashaS | ASP.NET | 0 | 23.03.2012 19:20 |
Background рисунок неправильно отображается в Mozilla на сервере | Bendebej | HTML и CSS | 1 | 18.02.2010 17:34 |
Как узнать когда браузер скачивает, а когда нет? | iPod | Работа с сетью в Delphi | 1 | 07.05.2007 15:16 |