Tam olarak sunucu ve istemci tarafında sayfalama nedir?

2 Cevap php

Is server side pagination where the pagination script calculates the number of entries in a database then make the links? All I know is server side is faster and better if there is alot of data and client side is using javascript?

Ne pagination komut dosyası sunucu veya istemci tarafı yapar?

Also, right now I am planning to use this pagination which is like digg-style. Can someone tell me if that is server-side pagination? (sorry if my terminology is off)

2 Cevap

Aşağı tüm veri çekme ve ardından müşteri segmentleri veri sayfalarına zaman istemci tarafı.

Sunucu tarafı genellikle istemci sunucuya geçti ve sonra sunucu sadece veri bu "sayfa" dışarı seçer bir anahtarı sağlayarak yapılır. Soyadına göre insanları görüntüleyerek olsaydı Örneğin, ilk sayfa, 'A' soyadı ile ve 10 satır döndü istediğiniz insanları istediğiniz sunucuyu anlatarak oluşturulmuş olabilir.

Sunucu gibi bir şey yapardı:

SELECT ssn, fname, lname 
FROM people 
WHERE lname like 'a%' and rownum <= 10 ORDER BY lname, ssn;

Last/10th kayıt 555555555 bir SSN 'ile başrahip' bir soyadı varsa, o zaman bir sonraki sayfaya geri sonra gibi bir şey yapacağını sunucu için bu değerleri geçen istemci tarafından alınamadı:

SELECT ssn, fname, lname 
FROM people 
WHERE lname >= 'abbot' and ssn > 555555555 and rownum <= 10 ORDER BY lname, ssn;

Sunucu tarafı müşteriye aktarılan veri miktarı tüm verileri aşağı çekti ve müşteri tarafından "belleği" ise çok daha küçük olduğu gibi büyük veri setleri için daha iyi kabul edilir. Bu aynı zamanda verileri sıralamak veya hız seçimi mevcut kriteri dizinleri kullanmak için veritabanlarının güçlü yeteneklerinden yararlanarak olarak istemci tarafı için gerekli bellek düşürür.

Server side pagination:

Sunucu kullanıcı (Geçerli sayfayı #, sipariş, vb) bir dizi parametre alır ve ne arama sadece ilgili kayıtları almak için gerekli gerçekleştirir. Bu daha sayfalara, vb bağlantıları ile birlikte, müşteriye gönderilir

Kullanıcı bir bağlantıyı tıkladığında her zaman, yeni verileri gösteren bir sayfa yenileme olsun.

Yararlı zaman:

  • Orada birçok sonuç var ya da her sonuç için yük oldukça büyük
  • / sonuçlarının işlenmesi bakarak çok zaman alıcıdır
  • kullanıcılar nadiren ilk sayfanın ötesine gitmek

Kadar büyük değil çünkü:

  • Her tıklama biraz zaman alabilir sunucuya bir yuvarlak gezi,
  • Durumunu korumak bir PİDE olduğunu

Client side pagination:

Sunucu istemci için mevcut tüm kayıtları gönderir, ve JavaScript kullanarak, bu sonuçları sayfalarında bölünmüş ve istemci tarafında işlenir. Sayfaları veya öğe sipariş değişen anlık olarak iyi olduğunu ve hiçbir sunucu etkileşimi gerektirir. Bu çok daha kolay sunucu tarafında sonuçlarını önbelleğe yapar.

Yararlı zaman:

  • Birçok sonuç var değil (sayfaların sadece bir avuç)
  • Kullanıcılar (dolayısıyla ekstra veri kaybı değildir gönderme) çok sayfaları kullanarak olacak
  • Yarma kadar formu: girişlerin her sayfa sadece gizli ve kaldırılmaz ediliyor, çünkü tüm form tek form gönderilebilir gönderin.

Kadar büyük değil çünkü:

  • Başlangıç ​​sayfası yükü çok büyüktür
  • (Zarif bozulması oldukça mümkün olsa) hakkında JS olmayan kullanıcılar için sorunlara neden olabilir
  • Sen Javascript içine ekran mantığı çoğaltmak gerekebilir.

A Blended approach

Tam sunucu tarafı sayfalama kullanmak için uygulama yazmak. Bu çalışma sonra, sayfa veya sırasını değiştirmez tüm bağlantıları kesmek için javascript kullanmak ve AJAX ile bu istekleri gönderebilirsiniz. Bir AJAX isteğine yanıt olduğunda hemen herhangi bir sayfa için gerekli HTML ve çevresinde sayfa krom hiçbiri dönmek için sunucu tarafı komut dosyası uyarlayın.

Yararları:

  • Her sayfa-dönüş için en az yük = daha hızlı tepki süreleri.
  • Tamamen ölçeklenebilir.
  • Mükemmel düşürür.