Есть ли способ попробовать загрузить файл в HTML / JavaScript и иметь запасной вариант, если он не загружается? - PullRequest
0 голосов
/ 10 марта 2009

Я просто переключился, чтобы начать использовать CDN для внешних изображений / статических файлов для своего сайта, и я хотел знать, как я могу создать резервную копию в случае сбоя этого CDN. Есть ли способ ссылаться на внешнюю ссылку в файле HTML / JavaScript, который позволил бы вам указать запасное расположение для этого файла, если он недоступен на первом внешнем хосте?

Ответы [ 3 ]

3 голосов
/ 11 марта 2009

Этот первый ответ может работать не во всех браузерах. Вы могли бы просто установить / remote / script.js установить некоторую переменную «loaded = true »и затем проверить это в следующем блоке скрипта.

<script>
loaded=false
</script>
<script src="some/remote/script.js"></script>
<script>
if(loaded==false){
  //do what you want here if it didn't load
}
</script>
1 голос
/ 28 мая 2010

Здесь есть хорошая статья: http://happyworm.com/blog/2010/01/28/a-simple-and-robust-cdn-failover-for-jquery-14-in-one-line/

Это пригодилось мне на сайте, использующем Microsoft Ajax CDN для получения jquery. У нас было несколько клиентов, чьи машины не доверяли сертификату SSL от CDN, когда мы использовали jquery на страницах HTTPS. Локальный запасной вариант - хороший способ решить эту проблему.

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

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js">    </script>
<script type="text/javascript">
//<![CDATA[
if (typeof jQuery == 'undefined') {document.write(unescape("%3Cscript src='/Scripts/jquery.min.js' type='text/javascript' %3E%3C/script%3E"));}
//]]>
</script>
0 голосов
/ 10 марта 2009

( Отредактировано: первая попытка была неправильной )

<script src="some/remote/script.js">
    // Set a flag in the above script
</script>
<script>
    if ( ! flag ) {
        // This code runs if script.js fails to load for some reason
    }
</script>

<object data="http://cdn/file.png" type="image/png">
    <!-- You can nest objects in here too -->
    <img src="http://local/file.png" alt="Fallback Image"/>
</object>

Итак, я полагаю, вы можете использовать метод сценария для всего; если удаленные файлы не загружаются, используйте запасной код, чтобы изменить все пути, указывающие на сервер резервного копирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...