2010-11-02 13 views
7

Ne var ki ben onu durumunda, javascript aşağı ya da değil yanıt üzerindedir sunucuyu sitemde performansını etkilemez edebilmek istemiyoruz, javascript dosyası sayfamda bir site dışı dahil etmek gerekir.Tesis dışında javascript site performansını nasıl etkilemez?

Bilmek istediğim şey, javascript'in, site dışı javascript'in barındırıldığı sayfanın kabul edilebilir bir zaman dilimi içinde yanıt verdiğinden emin olmak için bir tür sarıcı işlevi yapması ile mümkün olup olmamasıdır.

ben javascript dahil yere bağlıyor "erteleme" ekleyerek kabul ettik, ama bu kadarıyla hala bildiğimiz gibi sayfanın geri kalanı yüklendikten sonra asılı siteyi bırakacaktı. Herhangi bir iyi alternatifler

o javascript yapmak mümkün değilse vardır?

Sitem C# asp.net yapılır.

cevap

4

Eğer site dışı JavaScript kendi kendine yeten içeriyorsa - yani, komut dosyalarınızın hiçbiri düzgün çalışabilmeleri için yüklenmesine bağlı değildir - çözüm oldukça basit olabilir. Bu örnek jQuery ile olmakla birlikte, herhangi bir kütüphane (hatta hiçbir kütüphanesi) yaşayabilir geçerli:

<div id="script-placeholder"></div> 
<script type="text/javascript"> 
$(function(){ 
    $('.script-placeholder').append('<script type="text/javascript" src="http://site.com/file.js"></scr'+'ipt>'); 
}); 
</script> 

Bu, tüm sayfa yüklenene kadar, daha sonra tetikleyecek olan boş yer tutucu DIV içine yeni <script> blok yerleştirmek bekleyecek tarayıcı betiği indirmeye çalışacak. Uzak sunucu yavaş yanıt veya aşağı ise, komut dosyası hala uzun bir süre ya da zaman aşımına alacak, ama buna beklerken ait kalan sayfanızı kullanarak kullanıcıların engellemez.

0

İlginç bir soru. Muhtemelen ajax'ı bir geri arama ile kullanabilir ve bir süre sonra yüklenmediyse bir miktar harekete geçebilirsiniz. Yine de başka bir siteye bağlı olmak için belirli bir neden var mı? Sitenize doğrudan kopyalamak çok daha kolay görünüyor.

1

Komut dosyasını, sayfanızın en altındaki sonuna yerleştirin, en azından yüklenen her şey yüklenene kadar erteleyebilirsiniz.

ihtiyaçlarınıza bağlı olarak tepkisini ing), hatta tamamen XHR'nin aracılığı sonra her şey (çok görüntüler için beklemek gerçek pencere yük olay kanca) burayı yük olabilir ve daha sonra dinamik olarak (eval tarafından içeriğini enjekte Metin. Sitenizde, alanlarınızı sınırlandırabilecek, alanınızı aşan sınırlamalardan kaçınmak için bir proxy'ye ihtiyacınız vardır, emin değilim.

Ayrıntı için bakın: http://www.stevesouders.com/blog/2009/04/27/loading-scripts-without-blocking/

İlgili konular