web-gelistirme-sc.com

Fibonacci sayfalaması

Bugün bu sayfalandırma kavramına rastladım ve onu büyüleyici buldum: Fibonacci tabanlı Sayfalandırma Kavramı.

Aslında eski bir shot ama yakın gelecekte bazı içerikleri sayfalandırmam gerektiğinden beni düşündürdü.

Sayfalar yakında yüz ve sonunda binlerce olacak, bu yüzden sadece listeleme yerine bazı "zeki" sayfalara [gruplar halinde] (10-30 | 31-32-33 ... 37-38-39 | 40-70) ihtiyacım olacak 1'den 200'e kadar olan sayfalar.

Daha önce de belirtildiği gibi, bu yaklaşımı büyüleyici buluyorum, ancak kullanıcının istediği sayfaya mümkün olan en az sayıda adımla erişebilmesi gerektiğini de hissediyorum.

Ben bir UX uzmanı değilim, bu yüzden hakim olacaksın: bunu iyi mi yoksa kötü bir yaklaşım mı olarak değerlendirirsin? Ve bu hangi kullanım durumu için iyi veya kötü bir yaklaşımdır?

KULLANIM DURUMUM

İçerik oluşturucunun kullanım durumunun farkında değilim. Zamana göre sıralanan bir içerik gösteriyorum ama zaman değişkeni kullanıcı ile ilgisiz. Sayfalar sadece içeriği parçalamak için vardır.

Öğelerin kalıcı bağlantısı olduğundan kullanıcının kendi başına belirli bir sayfaya gitmesi gerekmez.

Aforizma içeren yayınlarım olduğunu söyleyin: farklı zamanlarda yayınlandım, böylece onları listeleyip sipariş edip sonunda sayfalara bölebilirim, ancak tarih/saatin kendisi ilgisiz.

72
XCore

Bununla hangi sorunu çözüyorsun?

Bu, bir geliştiricinin var olduğunu düşündüğü bir soruna çözümü gibi görünüyor. Aslında kullanıcıların sayfaları nasıl kullandığına bakalım.

Gitmek istiyorlar:

  • belirli bir sayfa
  • ilk sayfa
  • son sayfa
  • sayfalardan birinde tutulan belirli bir öğe
  • sonraki veya önceki sayfaya gidiyor (ayy, unuttu, teşekkürler 3nafish)

10 sayfa rastgele mi zıplıyor? Neden? Kullanıcınız bunu yapmak zorundaysa, sorunu doğru şekilde çözmezsiniz.

116
Chris Aplin

Gerçekten 3000'den herhangi bir sayfa seçme olanağı sunmak istiyorsanız, karaboz'dan eski bir ruh var. Fikir, sayfayı kaydırma çubuğu gibi seçerek yapmaktır. Örneğin, 50 sayfa nasıl görünüyor: enter image description here

Bu anda gerçekten ihtiyacınız olan bir grup sayfaya ulaşmak için kaydırma işaretçisini (gri) çok hızlı hareket ettirebilirsiniz. Şimdi turuncu işaretçi - sayfa seçildi. Sayfayı değiştirmek için tek bir tıklama.

100 sayfa için: enter image description here

Örnekleri ve kaynakları web üzerinde bu adla bulabilirsiniz - "Paginator 3000"

46
Mike Frolov

Birkaç Edge durumu dışında, özellikle forumlar söz konusu olduğunda sayfalandırma kötü bir fikirdir .

Düzenle: 4 yıl sonra buna bakıyorum! Şimdi sonsuz kaydırma (Ben dinamik yükleme) modern uygulamalar için go-to çözüm gibi görünüyor. Vaka örneği: Reddit.

Soru: Bir kullanıcı sayfa 1534'ün 3'ünde ilginç bir kedi resmi olduğunu nasıl bilebilir?

Yapmazlar. Belirli bir sayfaya erişmek isteyen kullanıcılar mevcut olmayan bir gereksinimdir yaygın forum biçimlerinde. Kullanıcıların istedikleri bu gürültülü yayınları ("Büyük yayın", "WOW", "LOL", "Teşekkürler") atlamak ve (umarım) o kedi resmine birileri mayıs gönderdi .

Forum (ya da benzeri) formatlarda, sayfa 10'dan sonraki (örneğin) içerik genellikle İnternet'in genel halkı tarafından kullanılamaz. Web sitelerini, sistemin kullanıcıları bir diziyi gazilyon sayfalara uzatmaya caydıracak şekilde tasarlamamız gerektiğini düşünüyorum.

O zaman forumumuzu sayfalandırmadan nasıl ölçeklendirebiliriz?

Söylem , uzun konuları görüntülemek için büyüleyici bir yol sunar: Kullanıcılar sayfanın altına kaydırdığında içeriği dinamik bir şekilde alır.

Yapabileceğiniz başka bir şey, gürültülü/popüler olmayan şeyleri bastırmaya çalışmaktır, bu yüzden ilgili, ilginç şeylerin çoğu ilk sayfaya sığar. Reddit bunu yapar.

Kullanıcı gerçekten belirli bir sayfaya/yayına gitmek isterse ne olur?

Yorumlardan ilginç bir fikir,

kullanıcı, sayfa 1534'te ilginç bir kedi resmi olduğunu bilecektir, çünkü birisi onlara söyledi.

Ancak bunun sayfalandırma ile nasıl kırılabileceğini görün: Kullanıcı sayfa 1534'e gittiğinde resim sayfa 1531'e taşındı, çünkü moderatörler bazı spam yayınları sildi iş parçacığında.

Bunun yerine, permalink kavramını kullanabiliriz. Kalıcı bağlantı dinamik yükleme ile nasıl çalışır? Kullanıcıya kalıcı bağlantıya karşılık gelen yayını gösterebilirsiniz, birkaç bağlamla ilişkili önce ve sonra bir bağlam verin. Twitter bunu yapar. Kullanıcı ek yayın yüklemek için her zaman yukarı veya aşağı kaydırma yapabilir.

Twitter showing a Tweet with context

İplikte yukarı ve aşağı kaba gezinme

Yorumlardan başka bir gereklilik:

Altı yıl önce olan bir şeyi bilmek istiyorum, yolun yaklaşık% 60'ına atlamak ve oradan bakmaya başlamak istiyorum.

Bunu dinamik yükleme ile yapan çok popüler bir sosyal medya web sitesi var. Şuna bir bak:

Facebook displays its timeline with dynamic loading. Users can jump to specific time periods using a scale in the side of the thread

Ancak, dinamik sayfa yükleme yetersizdir. Bunu nasıl çözebilirsin?

Yorumların belirttiği gibi, dinamik sayfa yükleme işlemi çok fazla işlemci yoğun olabilir ve tarayıcıların bazen çökmesine neden olabilir. Bir çözüm, kullanıcının sayfadan daha önce okumuş olduğu eski içeriği silmek olacaktır. Tipik konuşmalarda, kullanıcıların ileti dizisine geri dönmesi olası değildir.

25
sampathsris

Bence bu serin faktörden sonra durur. Bu, "yapabildiğiniz için yapmanız gerektiği anlamına gelmez" durumlarından biridir.

Geleneksel olanı takip etmek en iyisidir. On adım ileri veya geri atlamak en yaygın olanıdır (elbette bir tane hareket ettikten sonra). Birden fazla sayfada ilerlemek için bir sonraki büyük sayının 25, 50 veya 100 gibi diğer durumlarda atladığımız ortak bir sayı olacağını düşünürüm.

Düzenle: Sayfalandırmanın genellikle kötü olduğunu iddia eden bazı yorumlar gördüm, bu yüzden sayfalandırmanın genellikle iyi bir deneyim olduğunu belirtmek zorunda hissediyorum. İşte Nielsen Norman Group'tan bir pasaj:

Sayfalandırmanın kullanışlı olduğu yerler, e-ticaret kategori sayfaları, arama motoru sonuç sayfaları (SERP), makale arşivleri ve fotoğraf galerileri gibi listeler içindir. Burada, bir kullanıcının hedefi tam listeyi incelemek değil, belirli bir öğeyi bulmak ve o hedef sayfayı tıklamaktır.

Liste öğelerine öncelik verebileceğinizi varsayarsak, kullanıcılar istediklerini en üste yakın bulabilirler. Kullanıcıların dikkatini odaklamak ve yanıt süresini iyileştirmek için, oldukça kısa bir liste göstererek başlayabilir ve ardından gerekirse listede daha aşağı ilerlemek için sayfalandırma seçenekleri sunabilirsiniz.

- Kullanıcıların Sayfalandırma Tercihleri ​​ve 'Tümünü Görüntüle'

Bir kullanıcı sık sık ayrıntı sayfalarına daldığında ve geri çekildiğinde sonsuz kaydırma özellikle e-ticaret sitelerinde kötü olabilir. Bu teknikle ilgili birkaç soruna işaret eden bir makale: http://www.nngroup.com/articles/infinite-scrolling/

Ben sık sık telefonumda alışveriş yaparken sonsuz kaydırma acı acı çekti; çünkü bir ürünün ayrıntılar sayfasından çıktığımda, listelenen ürünlerin sayfası yenilenir ve daha önce bulunduğum sayfa konumunu korumaz. Genellikle siteden ayrılırım.

6
Michelle

Bu, veri görselleştirmesinde yaygın bir sorun olan ölçeklendirme sorunudur :) Y ekseninizde veriler (sayfa numaraları) vardır ve ideal olarak hepsini bir kerede görüntülemek istersiniz - ancak bu uymaz, böylece ölçeklendirirsiniz o.

Genellikle log (10) ile ölçeklendiririz, çünkü bu, insanların kavramsallaştırması için en kolay dönüşümlerden biridir - ancak herhangi bir ölçeklendirme sırasına göre gidebilirsiniz! Belirli bir diziyi test etmenin bir yolu hesaplamaktır:

- The most clicks required to reach a page in list
- The mean clicks to reach any page in list
- The modal clicks to reach any page in list

Değişkenleri kullanma:

 - Total number of pages
 - Number of options/jumps available to choose from
 - Scaling approach

Farklı ölçekleme yaklaşımları, farklı liste uzunlukları ve farklı atlama sayıları göz önüne alındığında farklı sonuçlara sahip olacaktır. Bu puanların hesaplanması da seyahat eden bir satış elemanı problemidir, bu nedenle büyük listeler (bu verilerin en yararlı olacağı) için hesaplamak acı verici olabilir. Yine de eğlenceli.

5
J.J

Bu ilginç bir fikir, ancak Fibonacci dizisinin kullanımı oldukça keyfi görünüyor. Kullanıcının sayfalar arasında düzgün bir şekilde konumlandırılmış belirli bir öğeyi bulmak istediği ve öğenin sıralama düzenini bildikleri varsayımıyla, en etkili algoritma bir ikili arama algoritması olacaktır. Bu nedenle, aşağıdaki sayfalandırmayı kullanmak daha uygun olacaktır:

LEFT MID RIGHT

Örneğin, 64 sayfanız varsa ve sayfa 42'de bir öğe istiyorsanız. Köşeli ayraç numarası, kullanıcının geçerli sayfasını gösterir:

16 (32) 48 --> 40 (48) 56 --> 36 (40) 44 --> 42 (44) 46 --> 41 (42) 43.

Bu nedenle kullanıcının öğelerini bulmak için yalnızca 5 sayfayı görüntülemesi gerekir. Kullanıcı bir sayfayı her tıkladığında, bu talimatı tam anlamıyla alır ve sayfalandırma aralığını ayarlarsınız. Bunun genel uygulamalar için yararlı olup olmadığı tartışmalıdır, ancak belirli görevlerin öğeleri bulması yararlı olabilir. Bunu, aynı şekilde 3 sayfa göstererek n sayfalara eşit şekilde seçerek de genişletebilirsiniz.

2
Brendon

Her zamanki video oynatıcımızdan bir sayfa alarak, sayfalarda daha hızlı gezinmek için bir 'hızlı ileri sarma' ve 'hızlı geri sarma' düğmesi eklenebilir. Ama Fibonacci? Bana bir anlam ifade etmiyor.

enter image description here

2
Adnan Khan

Bir kullanıcının sayfalara gitmek, muhtemelen atlamak istediğini varsayarsanız bu iyi bir fikir olabilir. Ama yine de, bir Fibonacci dizisi olması gerekmez. Herhangi bir bazın logaritmik ölçeğine sahip olabilirsiniz.

Ama aslında ilk etapta, "önceki" ve "sonraki" (ya da eşdeğerleri) dışında herhangi bir düğmenin herhangi bir anlam ifade edeceğini düşünmüyorum. Kullanıcılar, atlamak istedikleri belirli bir sayfayı akıllarında tutuyorlarsa, gezinme düğmelerinin art arda tıklamaları yoluyla bu sayfaya erişmek yerine bunu bir giriş kutusuna yazmaları gerekir. Aksi takdirde (bir kullanıcının aklında belirli bir sayfa yoksa), kullanıcı tüm sayfalara tek tek bakmakla ilgilenmelidir ve belirli sayfaları atlamak mantıklı değildir, bu nedenle "önceki" ve "sonraki" yeterli ol.

2
sawa

Ayrıca kullanıcının istediği sayfaya mümkün olan en az sayıda adımla ulaşabilmesi gerektiğini hissediyorum.

fibonacci sayıları serin ama mümkün olan en az adım sayısı, kullanıcının istediği sayfanın sayısını elde etmek ve oraya atlamaktır.

Sayfa 1512'de bir şey olduğunu biliyorsanız, fibonacci sayıları ile ikili arama yapmaktan ziyade bunu yapmayı tercih ederim (aslında, url'yi değiştirerek navigasyonu atlamaya çalışacağım)

2
thanosqr

Bir açılır menü kullanmayı düşünebilirsiniz (AKA bir açılır menü).

Bu, sonuç kümesinin boyutunun hızlı bir göstergesinin yanı sıra, kullanıcının ilk, son ve ara sayfalara makul bir şekilde atlamasına izin verir.

edinburghbicycle.com pagination

Bu http://www.edinburghbicycle.com/browse/clothing/mens-clothing adresinden

Kullanıcı testinde, en önemli şeyin büyük sonraki/önceki düğmelere sahip olmak olduğunu buldum.

Tembel yükleme daha iyi bir çözümdür - ama bunu söylemek kolaydır ...

2
dave

Kesinlikle ilginç bir fikir, ancak yüzlerce veya binlerce sayfaya sahip olmayı planlıyorsanız, hepsine göz atmak muhtemelen ne olursa olsun hoş olmayan bir deneyim olacaktır.

İçimdeki sinik, yaratıcının kullanım durumunun Fibonacci dizisini basan bir algoritma yazarken ortak bir programlama zorluğunu çözme yeteneğini sergilediğine inanıyor.

1
drosenblatt

Bu bir arama sonucu için sayfalama ise, en alakalı sonuçların ilk birkaç sayfada olduğunu unutmayın (Google arama sonuçlarını hiçbir zaman 2-3'ten fazla sayfalandırmadım). Bu nedenle, en iyi deneyim, en alakalı sonuçları en üstte göstermek ve sayfalandırmaya odaklanmayı düşük tutmaktır.

Bir arşiv görüntülüyorsanız, basit sayfalandırma için kategorizasyon tercih edilir. Örnek: Alfabetik, yazar tarafından, son değiştirilmiş, etiketler vb.

0
Balaji Natarajan