Yanıtlar:
Ne yaptığınıza ve nasıl yaptığınıza bağlıdır.
Tam sayfa yüklemelerini AJAX istekleriyle değiştiriyorsanız (yani yalnızca bir kullanıcı tam sayfa yüklemesi için tıkladığında AJAX aramaları yapıyorsa), AJAX sunucu yükünü azaltacaktır (çünkü muhtemelen) daha az işleme ve daha az geri dönüş yapıyorsunuz veri.
Öte yanda sen anketler sunucu her birkaç saniyede daha sonra o otomatik güncelleme tipi AJAX ekliyorsanız olabilir , kullanıcı yine elle yenilemek için F5 tuşuna basarak devam ettiği takdirde, sunucu yükünü artırmak olmayabilir (kullanıcı bağlı yükünü artırmak ancak çoğu insan genellikle bunu saatlerce yapmaz)
Başka bir AJAX optimizasyonu, yalnızca siz kaydırdıkça daha fazla veri yüklemektir. Bu durumda, kullanıcı tamamen aşağı kaydırmazsa, bu israf edilir.
Tabii ki gerçekte uygulama her iki şekilde de sonuçları çarpıtabilir, bunlar makul ölçüde iyi uygulamalar olduğu varsayılan sonuçlardır.
Tabii ki sunucu yükünü azaltmaya yarar. Facebook'un bunu yapmak için nasıl ajax kullandığını öğrenmek için bu jsconf'09 sunumuna bakın .
Ajax zaman uyumsuzdur. sunucu iletişimi - ve bunu sayısız şekilde kullanabilirsiniz. İnsanlar basit JSON'u gerçek zamanlı Web'e ve aradaki her şeye yüklemek için kullanıyorlar.
Unutmayın - asıl zorluk, istemci ve sunucu arasındaki dengedir . Her bir tarafın sistemin optimize edildiği şekilde çalışmasını sağlamaya çalışın ve Algılanan Duyarlılık ve gerçek Hız'dan belirgin faydalar elde edin.
Düşünmediğiniz başka faktörler de var - çoğu durumda AJAX sunucu yükünü artıracaktır. Tipik, ajax olmayan bir senaryoda, kullanıcı birkaç saniyede veya birkaç dakikada bir büyük bir sayfa yükler. Evet, bu tek sayfa sunucu için biraz daha fazla iştir, ancak diğer istekleri kurtarma ve sunma istekleri arasında bolca zaman vardır. AJAXified senaryosunda, bu tek sayfa yükü düzinelerce küçük isabettir, sunucuyu sürekli olarak bozar ve yanıtlar bekler.
1000 kesintiden ölüm gibi - isteklerin hiçbiri kendi başına büyük değil, ama toplam ağırlık bir katil. Özellikle bu küçük isteklerin tam sayfa isteği olarak hizmet etmek kadar pahalı olduğunu düşünmeye başladığınızda. Her iki durumda da, büyük bir HTTP bağlantısı üzerinde otururken bir veritabanına vurarak ve bir cevap beklerken, büyük olasılıkla tüm bir web uygulaması kanalından geçiyorsunuzdur.
İşte ajax'ın sunucuda nasıl çirkin olabileceğini gösteren bir örnek. Widget'lar için 4 yuva içeren tipik bir "yönetici gösterge tablosu" alalım. CEO'nun sağ tarafta tam bir satış raporu, ortada ilk 10 kazanan listeyi ve sağda bir şirket hisse fiyatı raporunu beğendiğini varsayalım. Ve diyelim ki bunu basit ajax uzaktan istekleri ile yapacağız. Stil sayfalarını, resimleri ve diğer varlıkları hesaba katmadan, sayfanız artık sunucuya karşı 4 HTTP gidiş dönüş (ana sayfa, gösterge tablosu raporlarının her biri) gerektiriyor. Bunların her biri yürütmek için tam bir web yığını gerektirir - veritabanlarına çarpacak ve web çerçevenizi kullanarak HTML oluşturacaksınız, değil mi? Şimdi tek CEO'yu, bazıları sivilceli bağlantıları olan 2000 uzak kullanıcıyla çarpın.
Tersine, raporları oluşturmak için HTML iskeletini ve verileri (sayfa içi JSON'da bulunur) çalıştıran ve döndüren tek bir sunucu tarafı sayfanız olabilir. Tek, daha büyük bağlantı ancak web sunucusunda toplamda daha az vuruş, çünkü 4 isteği işlemiyor ve 4 boru hattını vb.
Sunucunun aksi halde yapacağı işi değiştirmek için AJAX kullanıyorsanız, evet sunucu performansını artıracaktır. Ancak, sunucuyu hala o kadar çok şey yapacak şekilde tasarlamış olabilirsiniz ve şimdi AJAX ile olan her şey, sunucunun zaten yaptıklarının üstünde.
Çoğunlukla bu kullanıcı arayüzü ile ilgilidir, çünkü istemci tarafında başka bir şey yapmamalısınız. Temel olarak, sunucunun kullanıcı arayüzünü desteklemek için yaptığı her şey (ör. Sayfayı kullanıcı girişine yanıt olarak farklı bir düzenle yeniden yüklemek) JavaScript ile yapar.
HTML oluşturma, uygulama sunucunuzun performans profilinin büyük bir parçasıysa, HTML oluşturmayı istemciye taşımak uygulama sunucusunda bir performans kazancı olabilir.
Bununla birlikte, HTML oluşturma uygulama sunucunuzun performans profilinin küçük bir parçasıysa, daha fazla istek genellikle yığın üzerinden daha fazla seyahat, daha fazla sorgu, uygulama sunucusundaki her şeyin daha fazlası, bir performans kaybı anlamına gelir.
Tabii ki, özel durumunuzda bilmenin tek yolu denemektir.
Çözümünüzü uygulamanın en iyi yolunu düşünmelisiniz. Basit, dinamik olmayan bir form ajax'a ihtiyaç duymaz ve eklemek aslında performansa zarar verebilir. Sorununuz kötü sorgularsa, dünyadaki tüm ajax optimizasyonu size kabul edilebilir bir performans artışı elde etmeyecektir.
Sunucunuz aşırı çalışıyorsa nedenini bulmanız gerekir.
Eğer hit bir sürü alıyorsanız o zaman ajax bu sorunu gidermek için daha fazla kapasite gerekir. Ajax eklemek, sunucunuzun işlemesi gereken istek sayısını artıracaktır.
Karmaşık bir sayfanız varsa, sunucunuzdaki yükü azaltmak için istemci tarafında yapabileceğiniz bir şey olup olmadığını görmelisiniz. Sayfanız dinamik, ancak gerçekten sınırlı bir veri paketi önbelleğe alma, istemci tarafı ayarlama için daha iyi ödeyebilir.
Ve bazen Ajax yardımcı olacak. Dinamik verilere sahip karmaşık formlarınız olduğunda ajax günü kazanır. Ancak, sorgularınız karmaşıksa ve çalıştırılması uzun zaman alırsa, ajax sorununuzu hala çözmez.