2009-03-10 19 views
0

Sitem için harici görüntüler/statik dosyalar için bir CDN kullanmaya başladım ve bu CDN'nin başarısız olması durumunda nasıl yedek oluşturabileceğimi öğrenmek istedim. Bir HTML/JavaScript dosyasındaki harici bir bağlantıya başvuruda bulunmanın bir yolu var mı, ilk dış ana bilgisayarda yoksa, bu dosya için bir geri dönüş yeri belirtmenize izin verir misiniz?HTML/JavaScript'te bir dosyayı yüklemeyi ve yüklemeyi ve yüklenmediğinde geri dönüş yapmanın bir yolu var mı?

cevap

3

Bu ilk yanıt tüm tarayıcılarda çalışmayabilir. Bazı/uzak/script.js bazı değişkenleri "loaded = true" olarak ayarlayabilir ve sonraki script bloğunda kontrol edebilirsiniz.

<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> 
0

(Düzenlendi: Birinci girişimi yanlış olduğunu)

<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> 

Yani her şey için komut dosyası yöntemi kullanmak herhalde; Uzak dosyalar yüklenemediğinde, yedekleme sunucunuza işaret edecek tüm yolları değiştirmek için geri dönüş kodunu kullanın.

+0

Komut dosyası yanıtı yanlış! (FF altında basit test) - ayrıca http://www.w3.org/TR/REC-html40/interact/scripts.html#adef-src-SCRIPT adresinde de bulabilirsiniz: "Eğer src bir URI değerine sahipse, Kullanıcı ajanları öğenin içeriğini görmezden gelmelidir " – Dror

+0

Yanlış hatırladım o zaman. – flussence

1

bu burada üzerinde iyi makale var:

Bu http://happyworm.com/blog/2010/01/28/a-simple-and-robust-cdn-failover-for-jquery-14-in-one-line/ jquery almak üzere Microsoft Ajax CDN kullanarak bir sitede benim için kullanışlı geldi. HTTPS sayfalarında jquery kullandığımızda, makineleri SSL sertifikasına sahip olmayan birkaç müşterimiz vardı. Yerel bir geri dönüş bu sorunu düzeltmenin iyi bir yoludur.

Geri dönüşü, komut dosyasının genel ad alanına başka şekilde ekleyeceği bir değişkeni denetleyerek enjekte edip etmeyeceğimizi belirledik. Örneğin.

<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

Harika bir kaynak, ancak ... bağlantıyı takip etmenize gerek kalmadan cevabını hazırlayabilir misiniz? –

İlgili konular