Как правильно организовать подключение JS на сайте клиента, чтобы потом в любой момент скрипт JS можно было обновить и он подхватился всеми клиентами, т.е. сбросилось бы кеширование браузером? JS, например, код подключения какого то виджета.
Нужно для того, чтобы при каждом обновлении скрипта не просить клиентов обновить его код подключения на своих сайтах.
в хедере подключается loader.js
который не меняется никогда (или достаточно редко)
этот файл загружает уже нужные js файлы, которые меняются часто.
а также в лоадере реализуйте логику по разруливанию ситуаций с кешированием, с версионностью и проч.
Можно отдавать скрипт, подключающий другой скрипт, а в другом скрипте менять GET параметры. Т.е.
document.write('<script src="...?v2"></script>');
А для этого подключающего скрипта запретить любое кеширование.
Ну или смотреть в сторону кеширующих заголовков (ETag, Expires, etc) и менять их, чтобы все подхватили изменения. Но тут нужно возиться, т.к. в каких-то условиях они могут не сработать.
Ну загрузчик же будет на Вашем сервере. Можно или ручками его поправить, или сделать загрузчик серверным скриптом, проверяющим дату модификации файла и отдающим нужный js-скрипт.
понял, загрузчик делаем легким и всегда с динамическим GET параметром(время и т.п.), т.е. он будет всегда загружаться с сервера, а уже в нем будет выставлена нужная версия JS срипта
спасибо
ТС не следует забывать что разные тама Хромы и другие ИЕ с заводскими настройками могут параноидально не обновлять файлы.
Посему — хороший вариант — только включать mtime файлы(или версию или как либо еще) в имя файла, либо менять его совсем.
Либо напрочь и полностью сносить кеширование файлов.