Ben sayfaları içindekilerin zaman her X miktar alıp JSON ya da XML veya bir şey kullanıyor olmalıdır?

6 Cevap php

index.php sayfadaki bir div içine notifications.inc.php saniye her X miktarda yükler bu jquery kodu vardır

<script type='text/javascript'> 
$(document).ready(function(){ 
     var updatenotification = function(){ 
          $('#notificationcontainer') 
               .load('notifications.inc.php') 
               .fadeIn("slow"); 
     }; 
     var auto_refresh = setInterval(function(){updatenotification();}, 5000); 
     updatenotification(); 
}); 
</script>

notifications.inc.php

<?PHP
if(notifications != 0){
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="box1r">
<tr><td height="25">Notifications</td></tr><tr><td colspan="2" bgcolor="#FFFFFF" height="11">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<?PHP
if($item1 == 1){
    echo 'AN HTML TEXT LINK HERE';
else if($item2 == 1){
    echo 'AN HTML TEXT LINK HERE';
else if($item3 == 1){
    echo 'AN HTML TEXT LINK HERE';
else if($item4 == 1){
    echo 'AN HTML TEXT LINK HERE';
}
// ect. ect
?>
</table></td></tr></table>
<?PHP
}// end main block, only show the header "Notification" text if there is at least 1 notification ITEM to be shown
?>

Now this works well for me, to show when a user gets new messages, comments, photo comments, friend requests, things like that on there homepage.

Sitem oldukça yüksek trafik ve ben (lütfen kaydedin, her alanda kod geliştirmek istiyoruz öncesi optimize kötü konuşma, hiçbir şey ama zaman var ve ben her şeyi yapmak istiyorum, 2 yıldır bu sitede çalışıyoruz ) benim yeteneği en iyi

SO ben bu daha iyi yapılabilir diye düşünüyorum? FIrst Ben yeniden kod tabloları DIV en kullanmak gerektiğini biliyorum ama şimdi ben bu özel sayfada bu tablo kurulum kullanmak için gidiyorum.

Yani, bant genişliği ve performans kaydetmek için JSON veya bir şey kullanarak yerine böylece bir başka sayfa her 10 saniyede bir içeriğini yüklerken veya olmalıdır?

Ben biraz açıklayabilir misiniz JSON veya bir şey kullanmak gerekiyorsa, o yüzden tam olarak nasıl uygulamaya emin değilim JS yeni am

6 Cevap

Bu konuda gidebiliriz tek yolu, her sayfada bildirimleri tablo için temel HTML yerleştirin, ancak CSS ile gizlenen emin olmaktır. Sonra basit bir JSON yazı (XML overkill olurdu bu yüzden çok basit veri isteyen çok basit bir yazı var, çünkü ben bunun için JSON tavsiye ederim) yapabilirsiniz. Sonrası bir bildirim verir ise o zaman masaya koymak ve engellemek için hiçbiri ekranı çevirmek (ve burada böyle bir şey istediğiniz fade-in/fade-out şeyler ekleyebilirsiniz).

Bu, hem bant genişliği tasarruf ve yavaş bağlantısı olanlar için mesajları hızlandırmaya yardımcı olacak oldukça büyük bir şekilde geri ve ileri gönderilen bayt sayısını azaltacak.

Ben doğru okuyorsam, her ankette bildirimlerin bir akımın tamamının yolluyorlar. Ben çok daha iyi bir optimizasyon sadece new bildirimleri için sormak olacağını düşünüyorum. Sen bir yere tablo satırında, her bildirim için zaman damgası koyabilirsiniz, sonra istemek notifications.inc.php?since=1234567890. Bu yalnızca yeni tablo satırları dönecekti, ve tabloya bu eklemek yerine her şeyi yerine yapabilirsiniz.

JSON bir sonraki adım olacaktır, evet; sadece sunucu üzerinde bir nesne oluşturmak, bir existing library, müşteriye iade ile kodlamak ve jQuery sizin için bir Javascript nesnesi haline genişletmek var. Eğer kütüphanelerde tüm cesareti kadar tamamlamayı, gerçekten sadece istemciye sunucudan bir dizi + karma bir yapıya gidiyoruz.

Bu tür bir şey için cometd bir göz atın. Bu zaten büyük ölçüde çözülmüş bir sorundur.

Fikir yerine sadece verileri, hatta sadece new veri göndermek yerine, tüm biçimlendirilmiş HTML, etiketi ve tüm geri kalan retransmitting daha olmasıdır. Zaten tarayıcıda yüklü javascript yeni verilere bakar ve ne görüntülenir ayarlar, ya da belki görüntülenen ne bir kısmını yeniden oluşturur.

Yani muhtemelen çok daha az veri muhtemelen, daha az veri aktarımı ile kazanmak.

Maliyet Java script karmaşıklık oldukça bir parçasıdır.

Eğer iletmek veri formatı olarak JSON kullanmanın avantajı, ayrıştırmak için çok az çaba olmasıdır - çünkü o biçim is javascript.

Orada kütüphaneler ve tüm bu iş için örnekler bol, yani gerçek kodlama çaba çok büyük değil.

JSON kullanarak yerine XML iyi bir fikirdir. Aktarılırken veri boyutu da önemli çünkü. Bu bağlamda, daha sonra JSON XML çok daha hafiftir. Steven dediği gibi JSON javascript nesne formatına sığar çünkü Ayrıca, XML abartılı olur. Yani veri çekerek XML kıyasla basittir.

Benim en son projede ben ön ucuna sonuçları iletişim JSON kullanıyorum. Ben JQuery ile acayip çalışır düşünüyorum. Unutma JSON javascript için inşa edilmiştir (JavaScript Object Notation)