Обслуживание локальных файлов, если пользователь находится в автономном режиме

#javascript #html #css #offline #docsify

#javascript #HTML #css #Не в сети #docsify

Вопрос:

Мне было интересно, есть ли лучший способ обслуживать пользователя с локально размещенными ресурсами, если обнаружено, что они находятся в автономном режиме.

На самом деле они не были бы в автономном режиме, но из-за корпоративных прокси иногда ссылки на сайты блокируются или просто запрещаются.

У меня есть около 10 ресурсов, доставленных через CDN, но, похоже, плохая практика писать это так:

 <script>
var isOnline = window.navigator.onLine;

if( isOnline ) {
    document.write('<script src="http://cdn.site.ltd/file1.js"></script>');
    document.write('<script src="http://cdn.site.ltd/file2.js"></script>');
    document.write('<script src="http://cdn.site.ltd/file3.js"></script>');
   document.write('<link href="http://cdn.site.ltd/file.css"></link>');
} else {
   document.write('<script src="../file1.js"></script>');
   document.write('<script src="../file2.js"></script>');
   document.write('<script src="../file3.js"></script>');
   document.write('<link href="../file.css"></link>');
}
</script>
  

Я имею в виду, что, кроме того, что у пользователя отключен Javascript (не по умолчанию), это неправильный способ сделать это?

Я также нашел это, но я не знаю, является ли это излишним для ситуации или нет?

Комментарии:

1. Почему вы используете echo?

2. @epascarello языковая путаница! document.write это то, что я имел в виду — я отредактирую его

3. если файлы существуют на локальном сервере, и локальный сервер всегда может быть доступен, но иногда cdn не может быть. Почему бы просто не всегда использовать локальный сервер и забыть о cdn?

4. @CodyPace ссылки cdn будут последней версией, но локальная версия будет последней сохраненной. это возможно, но я надеялся на баланс или запасной вариант

5. @charlietfl потому что он будет обслуживать файл в локальной сети, а не в Интернете

Ответ №1:

Это был бы идеальный вариант использования для ServiceWorker, не так ли?

Комментарии:

1. Это плохой ответ или просто спам?