Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: RSS vs Ulubione
Forum PHP.pl > Inne > Hydepark
Niktoś
Witam czytam o RSS'ie i się zastanawiam czy takie coś w ogóle użyć.Użytkownik dostawałby informacje o nowych produktach ze sklepu który by subskrybował.Jednak co mnie martwi to generowanie XML'a i ogólna wydajność takiego systemu trzeba by było generować dokument xml dla każdego sklepu.No i co z użytkownikami chrome,tam rss nie działa wobec tego jakby się zachował skrypt przy kliknięciu na RSS'a?Mogę także użyć linku jako dodaj do ulubionych(dodaj do zakładek)-wtedy to użytkownik klikałby i wchodził na stronę z wszystkimi produktami z danego sklepu.Co by było lepsze według was?
Czy ktoś się bawił RSS'em?
thek
Ale czy naprawdę generowanie tego XML uważasz za obciążające? Sklepów nie masz liczonych w setkach czy tysiącach zapewne smile.gif Poza tym nie musisz serwować zmian w realtime... Generowanie raz na godzinę czy dwie to chyba nie jest ogromny narzut. Jeśli dodają ludzie rzadziej produkty to i raz na 6 godzin styknie. Ba... Z crona możez ustawić, że te co godzinę ma być od godziny x do y a w nocy może być rzadziej.

Dodanie do zakładek? Jedno czy dwa kliknięcia lub skrót klawiaturowy. User gdy go coś interesuje - sam to zrobi. A chrome może nie czyta RSS natywnie, ale myślisz, że gdy ktoś czyta RSS to nie ma czytnika tych kanałów jako dodatek jakiś lub osobny app? Ja mam przykładowo tak zrobiony kod, że sprawdzam datę ostatniego generowania i sprawdzam co X czasu, czy mam nowy produkt. Jeśli tak - generuję, jeśli nie - zlewam sprawę. Przy czym możesz się zastanowić czy generujesz RSS dla sklepu całego czy wybranej kategorii... A możesz zawsze jeszcze inaczej zagrać i ja to stosuję też w jednym serwisie. Zalogowany user może wybrać w profilu interesujące go kategorie i z określoną częstotliwością sprawdzane jest pojawienie się nowych ofert w nich. Jeśli występują, userowi jest wysyłany mail z tymi ofertami.

Tak naprawdę więc wszystko zależy jaki masz cel i w którą grupę odbiorców celujesz. Możesz przecież mieszać wszystko... Mailing dla zalogowanych, którzy zaznaczają wybrane kategorie, ale i RSS dla wszystkich, włącznie z niezalogowanymi. Bo do zakładek/ulubionych to każdy potrafi dodać smile.gif Skrypty tego typu to myślę, że już raczej tylko na stronach niepotrzebnie miejsce zajmują.
Niktoś
Ja będę miał tylko niezarejestrowanych.RSS to jest fajny ficzer,ale dodatkowo obciąża bazę i sam skrypt.Operacje na plikach xml do najszybszych nie należą,a jak będą liczni subskrymenci to i baza może dostac w d... Myśę że jak to wszystko dopieszczę to tym się zajmę-aktualizacja co 3 dni wystarczy.Dzięki za odpowiedź-a tak jak mówiłeś do zakładek to każdy może dodać.
lobopol
Niktoś jaka baza? jak thek zauważył generujesz raz dziennie i masz po prostu wczytywany plik bez żadnych połączeń z bazą.
!*!
Cytat(Niktoś @ 24.03.2012, 23:54:06 ) *
Ja będę miał tylko niezarejestrowanych.RSS to jest fajny ficzer,ale dodatkowo obciąża bazę i sam skrypt.Operacje na plikach xml do najszybszych nie należą,a jak będą liczni subskrymenci to i baza może dostac w d... Myśę że jak to wszystko dopieszczę to tym się zajmę-aktualizacja co 3 dni wystarczy.Dzięki za odpowiedź-a tak jak mówiłeś do zakładek to każdy może dodać.


A o cache słyszałeś? Poza tym nie widziałem jeszcze skryptu/odnośnika do RSS który pobierałby wszytko, z reguły jest to kilka ostatnich rekordów 5-20, więc bez przesady że zarżnie Ci to bazę, szczególnie że czytać będziesz to z pliku który będzie generowany raz na ileś tam godzin lub/i przy dodaniu produktów.
thek
RSS nie obciąża bazy smile.gif Jest generowany raz na jakiś czas i potem sobie jako plik leży na serwerze ile chcesz. Tak więc to się nawet o cache nie ma co opierać. Ci co myślą o RSS jako o plikach cache o dość długim czasie życia też mogą tak robić. Ja jednak wolę sobie to na boku zapisać i niech leży sobie spokojnie na serwerze. Wtedy RSS robi jako zwykły link do pliku i obciążenie jest niemal żadne poza transferem. Możesz także zrobić sobie "automat", który w razie dodania produktu do sklepu sam aktualizuje RSS. Algorytm to kwestia jedynie tego w jakich sytuacjach i jak zawartość RSS miała by się zmieniać.
Niktoś
Cytat
RSS nie obciąża bazy
Nie wiem ,może ja jakoś słabo myślę,ale przy każdorazowej aktualizacji,muszę otworzyć plik xml,wyciągnąć dane-pozycje z produktami i porównywać z bazą danych,jeśli są jakieś nowsze produkty updatować plik xml i to tak z każdym xml.Jeśli sklepów ,będę miał 100 to muszę wykonać te czynności na 100 plikach xml.Więc,zastanawiam się Thek,czy to co zacytowałem od Ciebie jest zgodne z prawdą.
Nie chce robić RSS'a serwisu(czyli 1 plik xml) ,tylko RSS dla każdego sklepu(wiele plików xml).
Sephirus
Jeśli nie chcesz się bawić w crony (co jest całkiem dobrym pomysłem do tego) to możesz to zrobic na zasadzie leniwego tworzenia rssów. Czyli:

Strona startuje - rssy nie są skacheowane. Strona sobie działa, działa, działa ... ktoś odpala RSS - sprawdzamy:
1. Czy plik z cache dla danego kanału/sklepu istnieje
2. Czy data powstania pliku jest nie starsza niż jakiś określony czas (załóżmy 6 godzin - czyli tyle będą trzymane cache'e rssów)
3a. Jeśli plik istnieje i data jest "młoda" to zwracamy plik
3b. Jeśli pliku nie ma lub jest stary - generujemy nowy i przekazujemy userowi
4. itd....

Oczywiście też popieram max 20 itemów w danym kanale RSS...

Jak widać opcji masz wiele...
Niktoś
Cytat
Strona startuje - rssy nie są skacheowane. Strona sobie działa, działa, działa ... ktoś odpala RSS - sprawdzamy:

Ten sposób się misja z ideologią RSS-jak ktoś nie kliknie w danego RSS'a to subskrybenci nigdy nie dostaną powiadomienia o nowych produktach.Dane trzeba cyklicznie updatować i na to chyba rady nie ma.
Sephirus
Ale chwileczkę smile.gif Poprzez "kliknięcie" rozumiem odwołanie się do adresu RSS'a... a z tego co wiem to subskrybenci a raczej ich programy będą ten link odwiedzać smile.gif
Niktoś
Nie wiem jak to rozumieć,że niby klient(subskrybent) wchodząc na danego RSS'a(u siebie w browserze) ,będzie inicjował updatowanie xml'a?Czy jest to możliwe.
thek
Pomyśl... Skoro robisz aktualizację/dodanie produktu, to chyba logicznym jest, że wiesz jaki produkt jest w jakim sklepie, bo tę informację na bank z bazy sobie wyciągniesz jako powiązanie konkretnego produktu z konkretnym sklepem i tylko dla nich robisz aktualizację RSS. Właściwie to nawet nie jest aktualizacja ale walnięcie zapytania wybierającego X najaktualniejszych produktów z bazy tego sklepu.
Crozin
Klient cyklicznie (w zależności od swoich uswtawień; np. co 4 godziny) wysyła zwykłe żądanie HTTP do serwera, który zwraca mu odpowiedź (plik XML) - dokładnie tak jabyś ręcznie w przeglądarce odpalił dany link. Tak więc możesz użyć dokładnie tych samych mechanizmów optymalizujących co w przypadku zwykłej swtrony.

Co do samego XML-a, szybkość/zaswobożerność jego generowania zależy od użytego narzędzia (a jest ich trochę), ale raczej nie jest to proces jakoś szczególnie obciążający.
Sephirus
Dokładnie tak jak napisałeś.

Powiedzmy że masz link do RSS typu:

strona.pl/rss/sklep_xxx.rss

Po odwiedzeniu tego linku (w dowolny sposób - browser/czytnik RSS itp.) skrypt sprawdza czy dany plik jest "aktualny" (powiedzmy nie starszy niż 6 godzin) i czy w ogóle istnieje. Jeśli jest ok - to zwraca plik, jeśli jest nie ok to generuje plik z bazy i go zwraca żeby następne odwołanie do tego adresu już miało zkaszowany plik.

Czyli pod tym adresem musi być skrypt - czyli jakaś prosta regułka mod-rewrite (htaccess) przerzująca na skrypt PHP z odpowiednimi parametrami i tyle.

Ta metoda sprawdzi się bardzo dobrze w przypadku małej liczby subskrybentów/odsłon RSS. Jeśli zaś liczba ta będzie ogromna (w co śmiem wątpić z racji tego że RSS wychodzi z mody) to wydajniejsze będzie zastosowanie crona plus statyczne pliki na serwerze z RSS.
thek
Niktoś... Jest możliwe ale mocno nieoptymalne. Czemu? Bo to zwyczajne podpięcie pliku php jako źródła RSS, a więc każde kliknięcie w link to odwołanie sie do skryptu generującego RSS by sprawdził czy są nowe produkty. Minimum więc robisz odwołanie do bazy "Są nowe produkty? Jeśli tak, aktualizujcie RSS. Jeśli nie - serwuj cache.". A nie sądzę byś chciał trzymać w cache RSS wszystkich sklepów, w locie generować RSS lub w razie potrzeby modyfikować ów RSS. Śmiało wystarczy to robić raz na jakiś, choć jeśli się uprzesz, to można w skrypt, który dodaje/aktualizuje produkty. Wtedy bowiem nie ma odpytywania: "Aktualny czy nie?" Bo zwyczajnie wtedy nie masz problemu wink.gif Zmiana następuje i RSS trzeba zrobić ponownie. No chyba, że RSS tyczy tylko nowych, a nie aktualizowanych produktów. Wtedy jedynie INSERT powoduje aktualizację RSS.
!*!
Cytat(Sephirus @ 26.03.2012, 13:13:27 ) *
w co śmiem wątpić z racji tego że RSS wychodzi z mody


Niby dlaczego?
thek
Ja bym powiedział, że właśnie obecnie staje się czymś normalnym. Kiedyś była to nowinka, taki bajer. Teraz staje się zwykłym, codziennym kanałem odbioru informacji. Upowszechnia się poprzez uznanie go za kanał dystrybucji jeden z wielu.
Niktoś
Cytat
Upowszechnia się poprzez uznanie go za kanał dystrybucji jeden z wielu.

A są inne ciekawe alternatywy?
Crozin
Cytat
A są inne ciekawe alternatywy?
Przede wszystkim Atom (jeżeli chodzi o tego typu kanał pobierania informacji).
Niktoś
No fajne:),z tego co przeczytałem to lepsze od RSS'a tylko że mniej popularne i w przeciwieństwie do RSS'a w większości przeglądarek nie jest on wbudowany.I co tu teraz wybrać hehe.
http://pl.wikipedia.org/wiki/Atom_%28standard%29

W atomie można nawet biuletyny w pdf'ie wykreować i przesłać kanałem ,bo jest możliwość przesłania plików,bardzo ciekawa alternatywa.
!*!
A co mają przeglądarki do RSS? Ci co czytają kanały informacyjne, używają przeglądarek które je obsługują natywnie, lub używają wtyczek, czytników webowych lub osobnych programów. Innymi nie masz się co przejmować, bo nawet nie klikną w ikonę od kanału.

Wybór między RSS a Atom jest miej więcej taki jak między kolorem #000000 a #0a0a0a... Użyj obu, użytkownik sam wybierze.
Niktoś
Cytat
A co mają przeglądarki do RSS?Niektóre mają wbudowane natywnie.
Użytkownik z natury leniwy ,nie będzie mu się chciało cokolwiek instalować-trzeba wychodzić z takiego założenia.
RSS jest bardziej upowszechniony a z tego co widzę to o wiele gorszy od Atom ,który Crozin przedstawił-bo np ja o nim nie słyszałem ,a o RSS'ie chyba każdy słyszał.
!*!
Cytat(Niktoś @ 27.03.2012, 14:59:33 ) *
Użytkownik z natury leniwy ,nie będzie mu się chciało cokolwiek instalować-trzeba wychodzić z takiego założenia.
RSS jest bardziej upowszechniony a z tego co widzę to o wiele gorszy od Atom ,który Crozin przedstawił-bo np ja o nim nie słyszałem ,a o RSS'ie chyba każdy słyszał.


Ale Ty się motasz w tym... RSS/Atom to TYLKO dodatek do obsługi witryny. Co z tego że przeglądarka X go nie obsługuje, skoro użytkownik który na niej siedzi go tam nie używa, bo albo nie wie co to jest, albo ma taki czytnik choćby w telefonie.
Niktoś
Cytat
Ale Ty się motasz w tym... RSS/Atom to TYLKO dodatek do obsługi witryny

Ficzer ,który podnosi atrakcyjność witryny nawet całego serwisu.Ja się po prostu zastanawiam, który byłby lepszy.Na razie się przymierzam,
a potem przystąpię do realizacji.To nie jest rzecz ,którą można tak od razu zaimplementować i zmieniać technologię atom na rss i odwrotnie w jeden dzień ,czy includować jednym poleceniem.Dlatego decyzja jest dla mnie kluczowa i ostateczna.
Można użyć dwóch ,ale to ogrom roboty i czy ma to sens?
!*!
A czy bez niego strona padnie? Bo mam wrażenie że podchodzisz do tego w ten sposób że każdy powinien używać RSSa nawet gdy nie ma pojęcia co to jest, a jego przeglądarka tego nie obsługuje. To tak jakbyś był oburzony że na IE6 nie działają gry z chmury lub webGL.

I nie sądzę że przy sklepie różnica między RSS a Atom, jest zauważalna, poza implementacją dostarczane treści będą niemal identyczne. Używanie dwóch na raz... dajesz użytkownikowi wybór nic poza tym. Przy implementacji raczej różnicy nie zauważysz, bo będą oba korzystać z tych samych mechanizmów.
Crozin
Jak już będziesz mieć kanał Atom, dodanie RSS-a (czy na odwrót) zajmie Ci pewnie 5-10 minut, więc nie przesadzaj z ogromem roboty.
Niktoś
Cytat
Jak już będziesz mieć kanał Atom, dodanie RSS-a (czy na odwrót) zajmie Ci pewnie 5-10 minut, więc nie przesadzaj z ogromem roboty.

Zakładając ,że będzie taki sam dokument xml dla ,obu.Ja myślałem w Atomie zrobić subskrypcje pdf'a , którą raczej w RSS'e nie zrobisz.Jakby to wyglądało-Atom generowanie xml+pdf,RSS-xml o innej treści.
Crozin
Czytam to już któryś raz lecz nadal nic nie rozumiem.

PS. Kropki, przecinki czy końcówki fleksyjne nie są chyba takie trudne w zapisie, co nie? Bo o logiczności/składności Twoich zdań wolę się nie wypowiadać.
!*!
Niktoś RSS to tylko obsługa 1 pliku XML (którego tak na prawdę nie ma, o ile dobrze to rozplanowałeś), więc nie zabieraj się do tego jak do inwazji na wilczy szaniec, a jak Cie to przerasta to zleć to komuś i po sprawie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.