2011-03-15 19 views
6

Bir web sitesi için RSS beslemesi uyguluyorum ve feed'in XML dosyasının biçimi/boyutu/içeriği hakkında bazı şeyleri anlamıyorum.Bir RSS yayını XML dosyası için ne kadar büyük büyük?

Siteyi, 1999'a kadar uzanan geçmiş verilerle başlatıyorum (şimdiye kadar herhangi bir noktada besleme olmadı) ve yılda yalnızca birkaç yüz öğe eklenecektir.

Arşivleme için bazı protokol var mı, yoksa yalnızca bir dosyayı saklayıp ona eklemeye devam edebilir miyim? Toplayıcıların her şeyi indirmesi gerektiği için verimsiz olacağını düşünürdüm (varsayalım).

Peki, bunun için her zamanki özel nedir? Geçen aya kadar mı kaldın? Mevcut dosya 900'ün üzerinde kalemle 1,5MB'tır ve 1 yıllık değerin 1/10'u büyüklüğünde veya daha az olması beklenir.

Hangi prensiplerin kullanılacağını ve nasıl uygulanacağını belirten işaretçiler var mı? PHP kullanıyorum ama verilerim karmaşık bir şekilde dosya yazmak için kendi senaryomu hazırladım (ve doğru bir şekilde doğrular), bu yüzden konserve bir çözüm kullanamıyorum - kendi başıma ne yapacağımı anlamalıyım senaryo.

+1

Cevap almak için hangi sihirle uğraştın? 3 ay önce bana çok daha yararlı olurdu! –

+0

Eskiden bir sendika önderiydim ve soru doğada teknikten daha mimari idi. Bahsetmediğim tek şey, son beslemelerinizi http://validator.w3.org/feed/ adresinden geçirdiğinizden emin olabilirsiniz. Bu, sizi ve tüketicilerinizi çok fazla kalpazanlıktan koruyacaktır! – Oppositional

+0

@david Kullanıcıları rahatsız etmemek için dilbilgisini biraz düzenledim ve soruyu düzenlediğinizde soru daha yüksek sıralamaya ve daha fazla görünürlük kazanır –

cevap

5

Çoğu sendikasyon feed'leri tüketicilerin, feed'in daha önce yayınlanmış içeriği 'düşme' ile nispeten yeni içerik içereceği beklentisine sahiptir. Yayında ne kadar içerik yayınladığınız, genellikle yayınladığınız içeriğin türüne bağlıdır, ancak feed'inizin boyutu arttıkça, bir yayın istemcisinin bilgilerinizi alma ve ayrıştırma yeteneğini etkileyebilir.

  1. Uygulanışı: gerçekten sürekli eklenen bir tarihsel feed yayınlamak istiyoruz ancak içerik öğeleri kaldırıldı vardır hiç olmadıysa

    , eğer (tüketicilerin ihtiyaçlarına göre) aşağıdaki seçenekleri göz önünde bulundurmak isteyebilirsiniz Feed Paging and Archiving, per RFC 5005 Section 3, paged feed'ler, giriş sayısı çok büyük, sonsuz veya belirsiz olduğunda yararlı olabilir. İstemciler, yalnızca feed'in girişlerinin bir alt kümesine gerektiği gibi erişerek, feed üzerinden "sayfa" oluşturabilir.

  2. İçeriğinizi mantıksal olarak birden çok yayına ayırın ve web sitenizdeki yayınlara auto-discovery sağlayın.
  3. Tüketicilerin içeriğinizi bir Atom veya RSS formatlı besleme olarak almalarına ve filtrelemelerine olanak tanıyan REST tabanlı bir hizmet arabirimi uygulayarak, bazı varsayılan varsayılan değerleri kullanarak varsayılan gösterimi gerçekleştirin.

Seçenek 1 değil tüm yem istemcileri sayfalama destekleyen olarak, özet akışınızı tüketen olacak yem istemci türünü bilmek yalnızca makul bir yaklaşımdır.

Seçenek 2 çoğu tarayıcı ve istemciler otomatik bulma destekleyen olarak, herkes tarafından görülen internet sitelerinde görülen en sık biridir ve tam bir tarihsel beslemeyi ve daha küçük daha yeni içerik beslemesini (veya segmentin hem sağlayabilir İçeriğiniz için anlamlı olan yollar.

Seçenek 3, ilk iki seçenekten her ikisinin de avantajlarını sağlamanıza olanak tanır, ayrıca içeriğinizin çoklu besleme biçimlerini ve zengin filtrelemesini sağlayabilirsiniz. Feed içeriğini ifşa etmenin çok güçlü bir yoludur, ancak tüketicilerin tüketmek istedikleri besin içeriğini uyarlama isteğini göstermeleri genellikle çabaya değerdir.

Çoğu zengin yayın istemcisi yayın içeriğini eşzamansız olarak alırken, feed'iniz için senkronize (ve potansiyel olarak sık) istekler yapan istemciler, feed'inizin boyutu arttıkça zaman aşımı sorunları yaşayabilir.

Ne yönde ilerlediğinizden bağımsız olarak, feed'inizde Conditional GET uygulamasını düşünün; En iyi uyan stratejiyi seçmek için sendikasyon içeriğinizin potansiyel tüketicilerini anlayın. Sağlamak istediğiniz yayınlama besleme biçimini/biçimlerini düşündüğünüzde, bkz. this answer.

+0

Aslında özet akışını bir komut dosyası olarak uyguladım, böylece birden çok alt besleme sağlayabiliyordum. Ayrıca, verileri alan SQL'de bir LIMIT yerleştirdim. Sonunda tüm beslemenin sadece başlangıçta bana önem verdiğinin farkına vardım, ama muhtemelen ona abone olanlardan hiçbiri için önemli değildi. Mükemmel cevap için teşekkürler. Özellikle son güncellenen bir başlık sağlama sorusuyla ilgili daha fazla araştırma için alıntılarınızı birkaçıya verdim. –

0

Toplayıcılar dosyayı tekrar tekrar indirir, böylece boyutu sınırlamak önemlidir. Bir GET parametresiyle geçersiz kılınmadığı sürece, feed'in 10 öğe içermesi veya haftalık olarak en eski öğeye sahip olması gerekir. Elbette ki bu, müşterilerinizden gördüğünüz gerçek kullanımın yanı sıra, yayının kendisindeki etkinliğe göre değişecektir.