Denisov80
@Denisov80
Юный Программист

Как обновить страницу в браузере после изменения в js скрипт?

После редактирования JS скриптов, браузер (chrome) не видит изменений,
пока не изменишь путь к JS файлу и соответственно не пропишешь его в HTML странице.
Как решить эту проблему?
После удаления файла JS с сервера, HTML страница работает без изменений, Ctrl + F5 не помогает.

Сайт без CMS, только голый HTML + CSS + PHP + MYSQL.
  • Вопрос задан
  • 889 просмотров
Решения вопроса 1
@MagicMight
no magic quotes
1) Откройте инструменты разработчика и отключите кэширование
2) Если надо, можете добавить к ссылкам на скрипты динамический хвост типа $script_url . '?t=' . time();
3)
// set expires header
header('Expires: Thu, 1 Jan 1970 00:00:00 GMT');

// set cache-control header
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0',false);

// set pragma header
header('Pragma: no-cache');

Prevent Browser Caching for PHP Script
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Можно не менять путь, а в HTML в URL, указывающем на файл скрипта, добавить аргумент типа /script.js?random=2345785904948759438758934882940589394. И после каждого изменения скрипта менять в HTML вот это вот случайное число. Для браузера URL с другим числом - это другой файл, будет скачивать его заново.

Ну а так, HTTP сервер у вас сконфигурирован неправильно, раз при изменении даты файла не видит этого изменения, или не сообщает браузеру об изменении...
Ответ написан
Комментировать
muscimolus
@muscimolus
Если это в окружении разработки и сама страница не кэшируется, то как вариант, можно просто этот скрипт при каждом запросе считывать и инлайнить тегом.

Если модуль или асинхронный скрипт, то:
// $script = file_get_contents(...);
?><script type="module"><?=$script;?></script><?


Если обычный скрипт, то без атрибута type.
Ответ написан
Комментировать
@php_monkey
php or monkey?
В режиме разработки сайта просто обновляй страницу браузера со сбросом кэша (ctrl + f5)

Если страницу надо показать заказчику/работадателю - добавляй гет-параметры к скрипту.
Можно как написали выше таймстемп добавлять, можно ручками писать версию (то, что идет в конце названия скрипта после знака вопроса)
<script src="/assets/js/main.js?v=1.2"></script>
Ответ написан
@makapohmgn
В Chrome ctrl+r, а не f5
Ответ написан
Комментировать
Denisov80
@Denisov80 Автор вопроса
Юный Программист
В итоге сделал rename() на PHP

При простом обновлении страницы, код PHP рандомно переименовывает JS файл,
и прописывает его имя в теги <script src="xxxxx.js"></script>

Спасибо Всем за Советы

Пока в очереди стоял, пробовал TOR браузер на мобильном - тоже работает,
видимо он не кеширует ничего при загрузке страниц.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы