XSLT po stronie klienta

Przekonwertowałem całą moją stronę do XML / XSL i chciałbym poznać wszystkie aktualne problemy z wykonywaniem XSLT po stronie klienta.

Oto te, o których już wiem (z doświadczenia z pierwszej ręki):

  • Cross-domain xsl files (jest to problem bezpieczeństwa, a nie cross browser)
  • disable-output-escaping (to nie działa w FF... uważają to za problem bezpieczeństwa)

Również co do obsługi przeglądarki to wszystko co wiem:

  • Opera 9+
  • FF 1.0 +
  • SF 2.0 + (mogę się mylić w tej sprawie)
  • Chrome
  • IE 6.0 +

Inne też by się przydały:)

Edit:

Co do 2. pułapki jest przyzwoite obejście, które pozwala przekazać xhtml do xsl. Działa poprzez rzeczywistą konwersję i upewnienie się, że XHTML jest poprawny XML i umieszczenie go w XML jako XML. Następnie w Twoim XSL kopiujesz xml ;) i wypisujesz go jako XHTML.

Author: Chad Scira, 2009-05-08

5 answers

  • Speed: przeglądarka musi zastosować transformację XSLT przed renderowaniem HTML, więc użytkownik będzie musiał poczekać dłużej, aby zobaczyć stronę. Silniki XSLT używane przez przeglądarki mogą nie być najwyższej klasy. W systemie Mac OS X przeglądarka może zamrozić się podczas przekształcania XML i spowodować kursor "spinning Beach ball", w ten sposób użytkownik może uderzyć w ekran i zranić siebie.

  • Accessibility: A co z przeglądarkami Nie w tym zestawie, takimi jako czytniki ekranu? Czy ci użytkownicy mają dla Ciebie znaczenie?

 14
Author: a paid nerd,
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 18:56:41

Na froncie performance... rozważ, że większość klientów w dzisiejszych czasach ma 2 procesory i 2 GB PAMIĘCI RAM każdy, a większość serwerów Nie... Mieć dwa procesory + 2 GB na klienta, czyli. Jest więc logiczne, że odciążanie transformatorów XSLT powinno poprawić skalowalność, a buforowanie CSS +XSLT + JS powinno zmniejszyć ogólny ruch.

Mówiąc, że próbowałem używać XSLT do tworzenia XHTML zawierającego SVG w przeszłości i miałem epic-fail. Największa strona była po prostu za duży (ponad 3000 wpisów w indeksie), a IE używa DOM do transformacji XSLT, co powoduje, że zaczyna się trasować. Te same transformacje wykonywane w Xerces-j (na serwerze, na tym samym dev boxie) były około 1000 razy szybsze.

Najwyższy czas, żeby przeglądarka dostała się do programu; -)

Ciekawa dyskusja. Dzięki za wychowanie.

Zdrówko. Keith.

 5
Author: corlettk,
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-17 08:14:47

Okazało się, że przekazywanie parametrów do xsltfiles jest trudne do utrzymania w stanie crossbrowsingu. Teraz popieram FF i IE ale Chrome wypadł z tego powodu..

 2
Author: Peter,
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 19:03:42

Pracowałem około 1 roku w projekcie, w którym użyliśmy xslt+xml - > html (chociaż tylko po stronie serwera)

Główna wada, na którą się natknąłem: nie ma dobrych narzędzi do generowania xslt, które skłaniają się ku rozwijaniu stron internetowych. brak podglądu html. brak potwierdzenia. wynikający z tego xslt był totalnym bałaganem, którego nikt nie mógł zrozumieć. to nie tyle wina projektantów xslt, co raczej wynika z modelu przetwarzania XSLT.

Warstwowanie między XSLT/XML / URL staje się bardziej skomplikowane niż powinno być. nie ma możliwości programowania zorientowanego na komponenty.

Często potrzeba było wielu plików xslt, co prowadziłoby do wielu pobrań po stronie klienta. w przeciwnym razie doprowadziłoby to do ogromnego powielania kodu w projekcie.

Uznałbym to za formę wczesnej optymalizacji. powinieneś zacząć od użycia "normalnego" frameworka internetowego, takiego jak wicket, jsf, tapestry, gwt itp.., później, jeśli okaże się, że preformance serwerów jest związany z cpu można ocnsider przepisać najczęściej używane części aplikacji w ten sposób.

Otoh, to ma realne korzyści, jeśli trzeba zapewnić zarówno XML api + interfejs html.

 1
Author: Andreas Petersson,
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-17 15:01:08

Plik XSLT jest kolejnym obiektem, który należy pobrać, a przeglądarka pobierze równolegle tylko 2 lub 3 elementy. Z mojego doświadczenia wynika, że ogólna wydajność (pobieranie i generowanie) jest zauważalnie wolniejsza.

Ponadto, w zależności od złożoności i nadmiarowości danych, możesz pobierać znacznie więcej niż naprawdę potrzebujesz - np. jeśli HTML został już renderowany.

 0
Author: paul,
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-11 08:56:40