Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Перекачивание скриптом браузером в случае изменения

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Edwvee
Отправлено: 26 Августа, 2014 - 09:11:46
Post Id


Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013  


Помог: 1 раз(а)




Не совсем сюда, вопрос касается http в целом и устройства браузеров.
Есть ли заголовки, предписывающие браузеру перекачивать скрипты всегда при изменении файла, а не когда ему заблагорассудится?

Пс: В названии темы опечатка. Не могу исправить.

(Отредактировано автором: 26 Августа, 2014 - 09:15:43)

 
 Top
Мелкий Супермодератор
Отправлено: 26 Августа, 2014 - 09:46:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Для этого браузеру нужно знать, что файл изменился. Как ему это узнать? Отправить ещё один HTTP-запрос с вопросом "этот файл поменялся?". Паразитная нагрузка.
А вы просто не редактируйте опубликованные файлы: файл изменился - при деплое выгрузите его по другому URL'у, использовав в пути, например, хэш этого коммита или номер версии.


-----
PostgreSQL DBA
 
 Top
Edwvee
Отправлено: 26 Августа, 2014 - 10:15:06
Post Id


Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013  


Помог: 1 раз(а)




Мелкий пишет:
Для этого браузеру нужно знать, что файл изменился. Как ему это узнать? Отправить ещё один HTTP-запрос с вопросом "этот файл поменялся?". Паразитная нагрузка.
А вы просто не редактируйте опубликованные файлы: файл изменился - при деплое выгрузите его по другому URL'у, использовав в пути, например, хэш этого коммита или номер версии.

Ну так часто так и делается, что отправляется if modified(или как там, не суть). У меня почти всегда так браузеры себя ведут. Не очень большая нагрузка.
Но это все у меня разглагольствование. Неужели смена имени - единственный вариант?
 
 Top
Мелкий Супермодератор
Отправлено: 26 Августа, 2014 - 10:28:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Это простой и гарантированно рабочий вариант.
Используется много и часто, из крупных хорошо заметен в яндекс.почте - используют номер релиза в пути.


-----
PostgreSQL DBA
 
 Top
Edwvee
Отправлено: 27 Августа, 2014 - 13:13:01
Post Id


Частый гость


Покинул форум
Сообщений всего: 195
Дата рег-ции: Июнь 2013  


Помог: 1 раз(а)




Суть понял, насчет реализации четко не было сказано. Я нашел два способа:
1. Меняем имена файлов.
2. Добавляем get параметр, например: /js/mySuperScript.js?version=1.2

Во втором случае браузер будет кэшировать скрипты, если гет параметр не поменялся?
 
 Top
nerv
Отправлено: 27 Августа, 2014 - 17:13:06
Post Id



Посетитель


Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013  
Откуда: Россия


Помог: 9 раз(а)






-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
Мелкий Супермодератор
Отправлено: 27 Августа, 2014 - 19:09:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Edwvee пишет:
Я нашел два способа:

Это всё один и тот же способ: поменять URI, по которому грузится ресурс.
Если URI тот же самый - будет взят из кеша.
Да, гет-параметр даст нужный результат и не сломает работу кеширования браузера.


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB