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 :: Изменение файла js

 PHP.SU

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


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

> Без описания
Арикус
Отправлено: 25 Июня, 2015 - 14:09:45
Post Id



Гость


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


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




Скрипты находятся во внешних файлах:
CODE (html):
скопировать код в буфер обмена
  1. <script type="text/javascript" src="jquery/common.js"></script>

Проблема в том, что, когда я их изменяю, браузер продолжает использовать старые скрипты, так как они сохранены в кэше.
Что сделать, чтобы скрипты обновлялись при их изменении? Могу придумать только изменение имени файла
CODE (html):
скопировать код в буфер обмена
  1. <script type="text/javascript" src="jquery/common1.js"></script>

Но, может, есть более удобный способ?
 
 Top
IllusionMH
Отправлено: 25 Июня, 2015 - 14:15:08
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




Арикус, Ctrl + F5 либо в инструментах разработчика есть опция отключить кеширование.
 
 Top
Ts.Saltan
Отправлено: 25 Июня, 2015 - 15:06:10
Post Id



Посетитель


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


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




Арикус пишет:
может, есть более удобный способ?

менять не имя файла, а query string?
CODE (htmlphp):
скопировать код в буфер обмена
  1. src="jquery/common.js?v=1.0"
 
 Top
IllusionMH
Отправлено: 25 Июня, 2015 - 15:49:29
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




Ts.Saltan, уже б время запихнули. Не ручками ж менять каждый раз
 
 Top
Ts.Saltan
Отправлено: 25 Июня, 2015 - 16:06:15
Post Id



Посетитель


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


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




IllusionMH пишет:
Ts.Saltan, уже б время запихнули. Не ручками ж менять каждый раз

Если поставить метку времени - вообще кешироваться не будет.
Кеш это ж не плохо.
А изменение url даёт понять браузеру, что скрипты/стили уже не те.
Чтоб ручками всё не менять, поставить константу, и менять её значение.

ИМХО, самый оптимальный вариант - настроить сервер, чтоб работал с заголовками Modified, ETag и т.д.
 
 Top
IllusionMH
Отправлено: 25 Июня, 2015 - 16:23:35
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




Ts.Saltan, самый оптимальный вариант спросить ТСа: ему для локальной разработки это мешает или для сервера, где пользователи сидят с закешированными скриптами.
Арикус:
Локально - кеш убирать (варианты: обновление без кеша, дев тулы, время в гет параметре)
На серверах - зависит от сервера. Если все своё - можно и заголовками, если нет - способ инкрементить версию в гет параметре в зависимости от времени в каком-то конфиге.
 
 Top
nerv
Отправлено: 26 Июня, 2015 - 00:26:41
Post Id



Посетитель


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


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




IllusionMH пишет:
если нет - способ инкрементить версию в гет параметре в зависимости от времени в каком-то конфиге

мы используем срез хеша последнего коммита
кстати, в когда последний раз смотрел в офф. доку гугла по кешированию, там черным по белому было написано не использовать query string для сброса кеша (или около того)


-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
IllusionMH
Отправлено: 26 Июня, 2015 - 02:52:35
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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





nerv, Круто с хэшом это круто! У нас туда версия.билд добавляется. Доступа к конфигам на проде никто не даст, чтобы настроить все нужные заголовки Улыбка
Инвалидация кеша - одна из двух главных проблем и сильно зависит от браузера. Доку не читал, но в ближайшее может и придется разорбраться в деталях

(Отредактировано автором: 26 Июня, 2015 - 02:53:20)

 
 Top
nerv
Отправлено: 26 Июня, 2015 - 10:18:54
Post Id



Посетитель


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


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




IllusionMH пишет:
с хэшом это круто!

скорее очевидно Улыбка Было предложено мной)
1. надоело в конфиге руками менять (о чем постоянно забываешь)
2. не люблю помнить всякие ненужные вещи, стараюсь автоматизировать

Ниже копипаста из нашей базы знаний

---
Определение версии проекта (получение последнего хеша)

# C помощью команды гита
```
git rev-parse HEAD
```

# Чтение из файла
```
.git/refs/heads/master
```

# Ссылки
- http://stackoverflow[dot]com/questio[dot][dot][dot]nt-commit-in-git
---

UPD

IllusionMH пишет:
Инвалидация кеша - одна из двух главных проблем

вторая какая? Есть ли жизнь на Марсе? Ха-ха

у меня еще проблемы были:
1. при использовании ангуляра - аякс подгрузка шаблонов (html), кот. кешил браузер
2. слишком много файлов скриптов
решил используя сборщик (шаблон инклюдиться в модуль)
например, в этом проекте собирается модуль, делается UMD, минифицируется, генерятся карты исходного кода

(Отредактировано автором: 26 Июня, 2015 - 10:29:31)



-----
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
 
 Top
IllusionMH
Отправлено: 26 Июня, 2015 - 15:56:24
Post Id



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


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


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




nerv, я понимаю что хэш получить проблем не составляет, но у нас без изменения версии в конфиге невозможно собрать релиз (бэкэнд и фронтэнд). Такое полиси для проектов, так что его и использовали когда стартовали.
В релизах все собирается через r.js в пару файлов и используется версия в параметре(в основном шаблоне подставляется), на локалке require-js все нормально тащит сам.

В интернетах натывкался на такую цитату.
Цитата:
В программировании существует лишь два характерных затруднения: инвалидация кеша, наименование сущностей и ошибка на единицу
 
 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