Performans kriter: PHP Üretilen içerik VS.

4 Cevap php

For the following pretty straightforward task: query a list of products from a DB and present it on a webpage, consider 2 setups:

Setup1: PHP komut sorgular. Tüm içerik sunucu üzerinde inşa edilmiştir ve tüm sayfa istemciye geri servis edilir.

Setup2: AJAX kullanarak içeriği talep Statik HTML "sayfa iskelet". Alınan içerik JavaScript kullanarak istemci tarafında ayrıştırıldı ve innerHTML veya benzeri kullanılarak işlenir.

Seçim için müşteri kullanıcı sayfaları, kategorileri ve etiketleri olduğunda tabii ki ikinci kurulum sadece mantıklı.

I-compare, bu iki, en az vasıtasıyla gerekir:

  • Bu hizmet için içerik alacak zamanı
  • kullanıcı deneyimi (Ayarı1 bir bütün olarak teslim edilir, Ayar2 "iki bölümden" teslim edilir)
  • ölçeklenebilirlik - Ben her gün 100.000 sorguları olduğunda nasıl kurulumları karşılaştırma yapmak

Konuyla ilgili herhangi bir düşünce çok takdir edilecektir.

4 Cevap

Smarty Vs. Javascript/AJAX : Sen şu soru faydalı olabilir

Ben bu soruya cevabım birkaç puan getirdi:

  • You should use server-side scripts to show any data that is known at the moment the page is loaded. Bu durumda, ürünlerin listesi görüntülenir gerektiğini biliyorum. Bir soru cevapları gösterilmesi gerektiğini gerçeği sayfa yükte bilinmektedir.

  • You should only use AJAX calls to load dynamic data that is not sayfa yüklendiğinde anda bilinen . Örneğin, bir soru altında "yorum" bağlantısını tıklayın ya Yığın taşması cevap zaman. Eğer belirli bir soruyu yorumları görüntülemek istediğiniz gerçeği sayfa yükte bilinmemektedir.

  • Javascript should not siteniz çekirdek işlevsellik erişmek için gerekli.

  • You should gracefully degrade functionality when Javascript is disabled. Örneğin, yığın taşması Javascript devre ile gayet güzel çalışıyor. Gerçek-zamanlı önizleme Markdown veya dinamik rozet bildirimlerine erişim yok, ama temel işlevi hala bozulmamış.

  • A single HTTP request to a server-generated page will load significantly faster than a request to load a page that makes five or six additional AJAX calls, özellikle (hücresel ağlar gibi) yüksek gecikme bağlantıları. Bkz Yahoo'nun Best Practices for Speeding Up Your Website .

Sen değil, web sitenizin kritik parçalarını oluşturmak için kullanılması gereken bir şey olarak, etkin olmayabilir bir bonus özellik olarak Javascript düşünmek gerekir. Bu kuralın istisnaları vardır. Eğer bir "sonraki sayfa" butonuna ve sadece ürün listesi değişiklikleri tıklayın hangi pagination çeşit yapmak istiyorsanız, AJAX doğru seçim olabilir. Ancak, emin Javascript olmadan kullanıcıları tüm listesini görüntülerken dışında değildir yapmalıdır.

There's nothing more frustrating than when a page can't be accessed because the web developer didn't obey the KISS principle . As an example, take Friendly's Restaurants. Ben alışveriş merkezinde iken their menu kontrol etmek istedim, bu yüzden sadece tam anlamıyla Flash olmayan restoran hakkında herhangi bir anlamlı bilgi almak olamayacağını öğrenmek için, benim iPhone üzerinde kendi web sitesi yüklendi. Bu her yerde uçan tatlılar swooshing ile fantezi menüler olması güzel, ama sonunda, ben sadece kendi menüsünde öğeleri görmek istedim. Onlar Flaş gerekli çünkü ben bunu yapamam. Hizmet zarif bozulma bu durumda yararlı olurdu.

Web üzerinde bazı şeyler Javascript olmadan etkili bir şekilde yapılamaz. Ürünlerin bir listesini görüntüleyen bunlardan not biridir. Eğer hala emin değilseniz, diğer popüler web siteleri şeyler yapmak nasıl bakmak. Ben başarılı, iyi tasarlanmış web sitelerinin çoğu yukarıda listelenen yönergeleri izleyin bulacaksınız düşünüyorum.

AJAX muhtemelen daha iyi bir seçim olduğu zaman sayfa değişikliklerini sadece küçük bir parçası.

Ben sunucu tarafı sürümü ile başlayan ve daha sonra bunun üstüne AJAX bina öneriyoruz. Bu şekilde aynı zamanda arama motorlarında endeksli varlık umurumda eğer muhtemelen zaten gerek ki, javascript olmadan çalışır sitenizin bir sürümünü alacak.

Ama önce sadece çalışan bir sayfa oluşturarak konsantre - her zaman daha sonra optimize edebilirsiniz.

Istemci üzerinde performans birçok faktör var. Anda çalışan nedir, sayfanın CSS nedir içeriği nedir ne tarayıcı, ağ üzerinde ne olduğunu eklentileri yüklü hangi tarayıcı önbelleği, vb Sadece hatırlıyorum nasıl dolu olduğu zaman Eğer numaraları ile oynuyor.

Uygulama berbat sürece, AJAX eller aşağı kazanmak gerekir. Yararları arasında şunlar vardır:

  • nedeniyle istemci tarafında paralel isteklerine paralellik (yani bir görev web sayfası parçaları hizmet için birden çok sunucu CPU çekirdek kullanabilirsiniz, o PHP kullanarak kolayca yapılamaz)

  • Sayfanın sadece küçük parçalar yenileniyor hızlıdır (aktarmak için daha az veri oluşturmak ...)

  • sunucu (istemciye html üretme yerine sadece sunmak için gerekli işleme bazı yükünü eğer esp.) yapmak için daha az iş var çünkü daha ölçekler

http://www.startpagina.nl/ (- Zaten son kontrol defa 1 statik dosya, istemci tarafında yapılan tüm özelleştirme teslim) son AJAX fad önce yolu bu yana başarıyla yapıyor gibi dinamik sayfalar.

Bu diğerinden daha yavaş olur böylece Tabii ki ya yöntemiyle şeyi berbat edebilir.