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.
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?
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.
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..
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.
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.
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