Cum sa generezi un feed RSS?
In ultima vreme nu prea am avut timp de munca, cu toate astea, o intrebare tot m-a macinat. Care e cea mai simpla si “light” metoda de a genera un feed RSS? In momentul de fata, eu nu stiu decat 2 metode:
- Metoda folosita de WordPress si de alte moduri si pluginuri pentru diferite forumuri. Aceasta consta in generarea fisierului feed-ului in momentul in care userul il acceseaza. Sa luam un exemplu: ai fisierul rss.php, in interiorul lui pui headerul “Content-type: text/xml;…” si generezi continutul. Problema la aceasta varianta e ca de fiecare data cand un user iti acceseaza feed-ul, trebuie sa faci o interogare, asta in cazul in care iei datele dintr-o baza de date. In cazul in care ai 100 de abonati, fiecare face in medie 5 refreshuri pe zi, asta inseamna 500 de interogari in plus. Stiu ca nu e prea mult si ca in ziua de azi nu prea conteaza, dar ceva parca tot nu suna bine. Singurul lucru bun, dupa mine, e faptul ca ai un control mai bun asupra feed-ului, fisierul fiind genrat dinamic, poti face o statistica a accesarilor (iar mie imi place statistica) samd
- Metoda folosita de unele forumuri mai cunoscute. Ce se intampla aici? Sincer nu stiu exact pentru ca nu m-am documentat preea bine, eu pana acum am folosit doar prima metoda. Ce cred ca se intampla? Se creeaza “fizic” un fisier xml ce e updatat la un anumit interval de timp, sau si mai bine, e updatat doar in momentul in care au fost adaugate noi obiecte ce vor fi preluate de feed. Diferenta fata de prima metoda? In cazul in care faci 6 updateuri pe zi ai doar 6 interogari.
Concluzia? Nu am inca una, astept saptamana viitoare sa mi se mai elibereze programul, sa am timp sa optimizez ambele variante si apoi sa le pun in practica pe FifaRomania.
LE: Am gasit si metoda 3, e o combinatie dintre cele doua de mai sus. Folosesti un fisier de cache ce contine feed-ul propriu zis, fisier pe care il updatezi doar cand ai facut un update la site, iar in fisierul rss.php poti sa faci statistici frumoase si alte nebunii iar apoi cand ti-ai terminat treaba, dai drumul si la feed.