Fotoğraf albümü için taze içerik sağlanması

4 Cevap php

Kullanıcıların bir sayfada tek tek görülebilir fotoğrafları göndermek bir site üzerinde çalışıyorum.

Birden fazla fotoğraf daha küçük sürümlerini görmek başka bir sayfa var.

Kullanıcı bu küçük fotoğraflarda herhangi tıkladığında "next" bu kategorideki başka bir fotoğrafa onları alacak basarak, büyük sürüm sayfası olsun.

Ben yeni fotoğraflar eski fotoğraflar üzerinde önceliğe sahip çok isterim.

Benim fikrim kullanıcı yanındaki o yeni fotoğraf alınır ve next hareketli tıkladığında tüm yeni fotoğrafları geriye doğru kullanıcıyı orada alacak olmasıdır.

Kullanıcı, tek fotoğraf sayfasını bırakır geri birden başparmak sayfasına gider ve sonra orada başka bir fotoğraf tıkladığında sorun, kullanıcı bir sonraki tıklandığında aynı yeni fotoğrafları görmeye başlayacaktır.

Ben kullanıcı aynı fotoğrafı görmüyor sağlamak istiyorum. Ben kullanıcı vistits photo Ben bir ziyaret tabloda kaydedin o zaman her ziyaretçi için benzersiz bir çerez koyarak ve düşündüm. Için db yeni fotoğraf seçerken 'gelecek' Ben bu kullanıcının daha önce bu fotoğrafa ziyaret değil emin olun.

Bu veritabanı yüküne etkisinin ne olacağını endişe (erken) duyuyorum.

Herhangi Bunu yapmanın en iyi yolu ya da alternatif bir yöntemdir ne olduğu hakkında fikir?

EDIT:

Çok kısa bir versiyonu, yeterince açık olmayabilirdi: Ben resimlerle bisiklet olduğunda hiçbir yinelenen içerik sağlamak istiyoruz. Tercihen, uzun bir süre içinde, bir oturum değil.

EDIT 2:

Yani bu şu anda yapmayı düşünüyorum budur. Iyi görünüyor? Ben (kelimenin tam anlamıyla, onarım için 5 dakika içinde kapatılıyor güç, ben bu mantıklı umut, yarın geri gelmek zorundasınız) birlikte attı.

alt text

4 Cevap

'Resim görüntüleyici' kapattığında, sadece (kullanıcının gördüğü ilk fotoğraf) başlayabilir id depolamak ve fotoğrafın id kullanıcı son gördüm.

Kullanıcı geri geldiğinde, sadece kontrol edebilirsiniz eğer orada burada yeni fotoğrafın yüzden eğer kullanıcı ilk gördüğümüz resmin kimliği (çerez saklanan veya veritabanı) varmak kadar, o ilk görüntüler eklendi. sonra sadece kullanıcı son gördüğümüz resmin kimliği kadar atlayın ve oradan devam edin.

Bu tanımlama / oturumları veya veritabanları üzerinde büyük bir yük oluşturmaz .. ve bu temelde up sorunları gibi düzeltmek için bazı noktaya kadar, .. en azından nispeten doğru aptal kanıtı olduğunu; kullanıcı fotoğrafın bir dizi ortasında düşer ne olur? Açıktır ki, kimlik bir dizi mağaza olabilir ..

Bu gibi çözümlerin ton. Sadece 'akıllı' düşünüyorum. Ve dikkate hassasiyet için ihtiyaç almak. Her ziyaret fotoğraf için bir veri tabanında bir kayıt koyarsanız, kullanıcı gördüklerini kesin bir hatırlama var, ama performansı büyük olasılıkla damla (dramatik zamanla, ben sizi temin ederim) olur. Eğer performans gibi, ve ben senin kullanıcıları, o zaman ben öneririm eminim Eğer daha az doğru olabilecek bir çözüm bakmak (yukarıda açıklandığı gibi) ancak performans saygı duyar.

Eğer oturumları kullanıyorsanız, bir kullanıcının görüntülediği eski 'yeni' fotoğraf kimliği takip olabilir. Onlar sonraki tıkladıklarında Yani, yeni fotoğrafı göstermek ve kullanıcının oturumunda kendi kimliğini saklamak. Onlar bir dahaki tıklatın her zaman, onlara bu onların oturumda var fotoğrafın kimliği daha düşük olan yeni fotoğraf vermek. Bu şekilde, oturumu her zaman nerede onları henüz görmedim nispeten yeni bir fotoğraf göstermeye başlamak bilecek. Sadece onların bıraktığı yerden fotoğraf kayıtları üzerinden hareket devam edebilir.

Oturumları çalışmak için çerezleri kullanabiliriz çünkü onlar kendi çerezlerini temizlemek kadar, bu kayıt ya giriş bile çalışacaktır.

Bu kullanıcı beri sunulan veya yüklenmiş olan yeni fotoğraflar Ancak, tarama başladı dikkate almayacağız. Kullanıcı bakmış her fotoğrafın bir rekor depolama olmadan, kayıt tutma, bu seviyede simüle etmek için bir yol anlamaya çok zor olacak.

Edit:

Bu konuda daha fazla düşünme, sen sadece kullanıcının görüntülediği eski fotoğraf kimliğini saklamak, ancak yeni olabilir. Bu şekilde, bir sonraki gördüğünüz tıklayın her zaman en yeni fotoğraf onlar gördüler yeni daha yeni ise. Eğer öyleyse, onlara yeni fotoğrafı göstermek. Değil, onlara bu onların "eski izlendi" fotoğrafı daha eski olan yeni fotoğrafı göstermek.

Ben oldukça tam olarak ne anlama geldiğini söyleyemem, ama yapmak istediğiniz tüm sipariş kalem (yüksek = en yeni) ilave edildiğinde dayanan ve sonraki vurduğunuzda id azaltma kimlikleri ile resimleri, bu şekilde onların içine atlayabilir her yerde ve sonraki tıklayarak inceleyen kuyruk sadece çizgi fotoğrafta yanında taşır.

Edit: From what it sounds like you will need to store user unique variables on what they have viewed and what they have not.

Diğer yanıtları itibaren uzun bir zaman dilimi içinde bunu istiyorum.

Eğer önermek gibi bir veritabanında görüşlerini saklamak bir aktif kalma süresini zaman çerçevesi (basit uygulama) bunu azaltmak için istekli değilseniz.

Disk alanı hakkında ilgilenip, bunu azaltmak için her türlü yapabilirsiniz.

To name a one: - Store individual views but where possible store view sequences. Compression in a simple form. So user views id 1,2,3,4,6,12,13,15. Your db views table might look like: View

UserID  ImageIDStart  ImageIDEnd
jim        1             4
jim        6            null
jim        12            13
jim        15           null

Siz, iki tabloya uygun sorgulama ve kolay işlenmesini sağlayacak 'dizilerinin' ve 'bireysel görüşlerini' bu kavramları bölmek isteyebilirsiniz. Tek tek görüşlerini alır ve ancak olası dizileri dönüştürür kompresör çeşit isterim.

Kullanıcıların sitenizde içine kaydedilir? Onları sunucu tarafı ayırt etmek zaten var mı?