Jakieś duże witryny korzystające z XSLT po stronie klienta?

Ostatnio zastanawiałem się nad nieco niekonwencjonalną architekturą budowania surowego XML po stronie serwera, a następnie używając arkusza stylów XSLT na kliencie, aby przekształcić XML w pełny interfejs użytkownika. Oczywiście, mechanizm awaryjny musiałby istnieć, gdyby klient nie był zdolny do XSLT po stronie klienta, w takim przypadku po prostu przekształcilibyśmy go dla nich po stronie serwera.

Jestem już zaznajomiony z XSLT, a takie podejście wydaje się być czystym oddzieleniem prezentacji i treści, całkowicie wymuszając dane do XML i używając XSLT do prezentacji.

Jestem również świadomy, że to dodaje dodatkową warstwę złożoności do aplikacji, która jest tylko kolejną ruchomą częścią, która może zawieść.

Moje pytanie brzmi: czy są jakieś duże nazwy lub witryny o dużym natężeniu ruchu korzystające z tego podejścia, a jeśli tak, to jakie ograniczenia / wnioski z niego wyciągnąłeś?

Dzięki Internetowi, Zach

Author: zachleat, 2008-11-08

7 answers

Podobnie jak inni ludzie wspominali, Blizzard ma wiele stron, które są xsl po stronie klienta. Polecam unikanie xsl po stronie klienta. To naprawdę fajny pomysł, ale jest wiele niezwykłych błędów, które trzeba obejść.

W Firefoksie każdy javascript, który używa dokumentu.pisz zniszczy DOM. Ponadto wtyczka noscript dla Firefoksa zatrzymuje xsl po stronie klienta. W obu przypadkach użytkownik nie zobaczy nic. Wydaje się, że nie ma sposobu na wykrycie tego rodzaju błędu, więc odwrót nie będzie praca.

W IE, jeśli masz coś, co robi przekierowanie 30x do czegoś innego pochodzenia (przechodząc z http do https lub przekraczając sub domeny), otrzymasz błąd za naruszenie tej samej polityki pochodzenia. Tak naprawdę nie naruszyłeś tej samej polityki pochodzenia, ale IE zachowuje się tak, jak ty. Na przykład, jeśli przejdziesz do http://foo.example.com/login i to robi przekierowanie 302 na https://bar.example.com/login.xml , IE będzie traktował xsl tak, jakby pochodził z bar.example.com i będzie traktował xml tak, jakby pochodził z foo.example.com. więc będziesz musiał powrócić do czegoś takiego jak odświeżenie meta dla przekierowań.

To są rzeczy, które wymyśliłem z głowy. Jest to zgrabny pomysł, ale należy pamiętać o tych kwestiach.

 13
Author: Buddy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-08 23:49:29

Nie mogłem szczegółowo powiedzieć, jak to jest zaimplementowane, ale World of Warcraft jest dość duży i duży ruch, a ich strona internetowa jest zaimplementowana tak, jak opisujesz.

 6
Author: Joel Mueller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-08 03:49:03

Nie znam żadnych dużych publicznych stron internetowych, które używają transformacji XSLT po stronie klienta (no, poza World of Warcraft wspomnianym przez Joela :-). Więc nie mogę odpowiedzieć bezpośrednio na twoje pytanie.

Jednak od czasu do czasu zastanawiałem się nad tym samym pytaniem i mam hipotezę, że liczba takich stron w Internecie musi być bardzo bliska zeru. :-)

Krótka wersja mojej teorii stojącej za tą hipotezą jest taka: z wyjątkiem niektórych dość egzotycznych przypadków, przepis opcja XSLT po stronie klienta po prostu nie jest warta zachodu. :-)

 3
Author: Yarik,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-09 18:19:26

Firma, w której pracowałem w 2001 roku wydała produkt serwerowy, który zaimplementował dokładnie architekturę, którą opisałeś. Mieliśmy bardzo dobry sukces, przenosząc przetwarzanie na klientów. Ponadto, wykonując wykrywanie klientów za pomocą agenta użytkownika HTTP, byliśmy w stanie użyć przetwarzania xsl po stronie serwera, aby zaspokoić bardzo konkretnych klientów, takich jak Japońskie telefony komórkowe. Myślę, że strony / usługi / produkty, które używają tej techniki zrobić to dość przejrzyście dla klientów. Jednak myślę, że trend ostatnio jest zrobić przetwarzanie po stronie serwera, tak, że nie trzeba polegać ani testować na poszczególnych implementacji XSL dla różnych klientów i uzyskać wsparcie dla niektórych rozszerzeń XSL, które nie byłyby w stanie używać podczas obsługi zdecydowanej większości przeglądarek.

Wiem, że nie odpowiadam bezpośrednio na twoje pytanie o nazwanie niektórych dużych witryn, ale mam nadzieję, że oferuję coś wartościowego dla problemu. Więc, w zasadzie chodzi mi o to, że chyba oszczędności wydajności robi swoje przetwarzanie szablonów jest bardziej wartościowe niż QA, wsparcie i rozwój dla trzech lub czterech przeglądarek bez rozszerzeń, wtedy powinieneś trzymać się przetwarzania po stronie serwera.

 2
Author: Elijah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-03 11:07:33

Obecnie uruchamiam kilka pomniejszych stron z XSLT po stronie klienta, wszystkie po szwedzku (lillemanfestivalen.se, resihop.nu i projekty beta). Moim największym zmartwieniem było to, że google nie indeksuje zawartości moich stron, tylko XML bez transformacji. Jednak od kiedy uruchomiłem resihop.nu tydzień temu pojawił się w google z transformacją! : D

Teraz moim drugim zmartwieniem jest facebook i inne serwisy społecznościowe, które nie rozumieją, jak sobie z tym poradzić. Nadal jednak uważam, że boki górne są większe niż boki dolne. Fantastyczna prędkość i separacja, które dostaję jest awsome. I z resihop.nu, nawet nie rozwijam osobnego API, po prostu kieruję programistów do samej strony. (Więcej pracy będzie tam potrzebne, aby to dobrze chociaż)

 2
Author: Lilleman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-06 16:10:44

Zgadzam się z odpowiedzią Elijaha. Myślę, że korzystanie z XSLT po stronie klienta jest trudną pracą. Musisz zrobić dużo QA za to. Ale z serwerem po stronie, nie masz tego QA. Musisz dbać o wszelkiego rodzaju klientów i możliwości podczas korzystania z client side. Istnieje możliwość, że Twój kod może się zepsuć podczas korzystania z XSLT po stronie klienta.

 0
Author: Zifre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-08 23:21:32

Mogę być stronniczy, gdy to mówię, ale praca na aplikacji internetowej, która to robi, nienawidzę tego. Jedynym powodem, dla którego jest to nawet opłacalne, jest to, że klienci są tylko IE6+. Nawet wtedy, są z tym problemy. Uważam, że XSLT jest bardzo trudne i sugerowałbym, jeśli masz zamiar to zrobić, aby uzyskać dobre narzędzie do debugowania i edycji XSLT. Dlaczego nie użyć JSON i jquery? Musi bardziej standardowe i mniej zmienności po stronie klienta.

 0
Author: Josh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-05-08 23:40:50