Отвечая на ваши вопросы о проверке файлов (в ознакомительных целях):
Я предполагаю, что вы используете P5.js в соответствии с тегами записей.
Это правда, чтобы проверить, существует ли изображение, вы можете использовать функцию loadImage .Таким образом, вы можете попытаться предварительно загрузить изображение в переменную и проверить, существует ли объект (проверьте код P5, чтобы узнать, как это сделать).
Что касается тестирования файла .js (или любого другого)Существуя, вы можете использовать loadBytes или httpGet , чтобы попытаться загрузить файл в переменную и, как в примере с изображением, проверить, существует ли объект.
Теперь по вопросу кеширования:
То, что вы пытаетесь достичь, это в основном «управление версиями».Как указывалось в предыдущих комментариях к посту, создание целой проверки для этого довольно затруднительно, может не работать в некоторых случаях или даже убивать преимущества кэша.
Фактически, до недавнего времени javascript не имелвозможность очистки кеша (только несколько браузеров реализуют это, и некоторые люди считают, что угроза безопасности представляет этот уровень браузера для разработчика).Поэтому, даже если вы проверите наличие файлов, вы не сможете гарантировать, что во всех браузерах очищено 100% кэшей.
Один из подходов для вас - создание версий папок с файлами вместо самих файлов.Например, каждая «новая версия» вашего «script.js» будет иметь такие URL-адреса:
http://yoururl.com/scripts/1.0.0/script.js -> Version 1.0.0
http://yoururl.com/scripts/2.0.0/script.js -> Version 2.0.0
http://yoururl.com/scripts/3.1.0/script.js -> Version 3.1.0
С учетом того, что браузеры обрабатывают кеш файла .HTML, вы можете получить преимущества кешадля ресурсов (js, изображений и т. д.) на вашей странице, когда версия их папки не изменяется в базовых файлах .HTML.
Для этого, если вы используете статические страницы HTML, веб-сервер автоматическидобавьте заголовок «Last Modified» на свои страницы, позволяя браузеру проверить, является ли последний кэшированный файл .HTML таким же.Если не было обнаружено никаких изменений, он загрузит файл .HTML из кэша, в противном случае он загрузит новый файл .HTML с сервера.Однако, если ваши страницы динамические, вам придется программно добавлять заголовок «Last Modified».