Jeszcze raz o wykrywaniu przeglądarek

Bullsh*t  in buzzword

Pisanie aplikacji webowych ma to do siebie, że czasem różne przeglądarki reagują na nie w nieco nieoczekiwany sposób. Problem może wynikać z błędnej implementacji CSS, z różnic w dostępnych funkcjach JavaScriptu, czasem przyczyną może być też populacja poszczególnych gatunków motyli w Australii (ukłon w stronę domyślnej przeglądarki Microsoftu). Najczęściej wynika jednak z zastosowania czynnika ludzkiego w procesie budowy owych aplikacji i usunięcie usterki sprowadza się do zrobienia czegoś TheRightWay™.

Jeśli boisz się, że twoja aplikacja nie zadziała na niczym poza dwoma testowanymi komputerami, to masz poważny problem. Albo cierpisz na paranoję, albo faktycznie aplikacja nie nadaje się do publikacji nawet w fazie alfa. Jeśli jednak uważasz, że wykrywanie przeglądarek innych niż testowane jest remedium na twoje bolączki, to masz już dwa problemy.

Po pierwsze, nigdy nie przetestujesz aplikacji w każdej konfiguracji przeglądarka + system operacyjny. Nawet gdyby się okazało, że wszędzie działa bez problemu, jeżeli nie pozwolisz ludziom tego sprawdzić, to wątpliwości pozostaną do końca życia. Ludzie, którzy w towarzystwie cieszą się największym autorytetem komputerowego guru i — tym samym — mają największą szansę zareklamować twój produkt wirusowo, często używają mniej popularnego oprogramowania. Ograniczając się do najpopularniejszej trójki, odcinasz się od nich na zawsze.

Po drugie, wyrzucanie gości, jeszcze zanim przekroczyli próg, to bardzo niegrzeczna metoda na powiedzenie komuś mamy was tam, gdzie słoneczko nie świeci. Jeśli aplikacja może rozpadać się na tyle, że nie da się jej używać, to wystarczy grzeczne ostrzeżenie, że za tabliczką spacery odbywamy na własną odpowiedzialność. Dużo więcej zyskasz, jeśli użytkownicy będą mieli szanse zgłosić konkretne usterki. Pomyśl, ile czasu twoi pracownicy muszą spędzić na szukaniu usterek przy dodawaniu obsługi kolejnej przeglądarki. Teraz pomnóż to przez liczbę zaangażowanych testerów i podziel przez liczbę użytkowników aplikacji. Trochę mniej, prawda? Użytkownicy pracują dla ciebie za darmo.

Jeśli jesteś pewien, że twoja aplikacja nie działa poprawnie z konkretną przeglądarką, to masz dwa wyjścia:

  1. Napraw aplikację. Z biznesowego punktu widzenia to jedyna sensowna odpowiedź na powyższy problem.
  2. Jeśli powyższe nie ma sensu, to wykrywaj przeglądarkę, w której aplikacja nie ma szans zadziałać, a nie te, w których testy przeszły pomyślnie.

Do upartych, jak autorzy pokazanego we wstępie buzzworda, apeluję, by przynajmniej wykrywanie zaimplementowali prawidłowo. Gecko to Gecko, czy będę używał Firefoksa, Flocka, Słitaśnej Przeglądarki Patrysa i niezależnie od systemu operacyjnego.

11 » odpowiedzi dla wpisu “Jeszcze raz o wykrywaniu przeglądarek”


  1. 1 Akregator-user

    Ha! To teraz już wiem dlaczego ten blog tak średnio dobrze się ogląda w Konquerorze ;-)
    Bo jest sprawdzany wyłącznie na “Słitaśnej Przeglądarce Patrysa”

    ;-P

    :-)
    Pozdrowienia

  2. 2 Akregator-user

    A z buzzwordem jest większa kicha - oni nie chcą pokazać swojej strony w ogóle użytkownikom linuksa. Nie ma znaczenia jakiej przeglądarki użyjemy

  3. 3 Patrys

    To akurat wina którejś zmiany w Konquerorze. W starszych wersjach działał dobrze, w Safari dalej działa dobrze. W Konq pojawia się, nie wiadomo skąd, kilka pionowych pasków przewijania i strona się składa do 1/3 ekranu.

  4. 4 Akregator-user

    No ale moje nawet najbardziej wykręcone style na stronach nie mają takiego czegoś - tylko u Ciebie to spotykam na blogu :-)
    Coś gdzieś pewnie jest przekombinowane z jakimś height:100%
    Pozdrowienia

  5. 5 Patrys

    Używam standardowego szablonu K2 ze zmienionymi kolorami :)

  6. 6 Wojciech Zając

    Buzzword to dość specyficzny przykład (mam Safari (mac) i też nie chce się uruchomić…). Dopuszczanie klientów po user_agencie zamiast wykluczania to jedno, a kontrola dostępu do serwisu na podstawie sprawdzania dostępności poszczególnych funkcji i możliwości to drugie.
    P.S. Dzisiaj miałem wejście z „Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3” — ciekawe jakby to zostało potraktowane… ;–)

  7. 7 Zbigniew

    Czy mi się wydaje, czy w ogóle ten cały BuzzWord jest we flashu?
    To może on w ogóle działa na każdej przeglądarce z flashem, tylko autorzy bronią do kilku słusznych ?

  8. 8 marcin

    Ja też uzywam akregatora i też tak mi się robi z tymi paskami przewijania na Room303 - dokładnie taki sam efekt mam na blogu smoka (of chrome.pl fame)…

  9. 9 jam łasica

    > To akurat wina którejś zmiany w Konquerorze

    Prawda. Z tego co zauważyłem, to ten bug pojawia się chyba na wszystkich blogach/szablonach opartych na K2 (np. http://getk2.com :)

  10. 10 TomekK

    Heh,

    Błędna interpretacja CSS to z porażającej większości problem IE. Ale dla nie go mamy komentarze warunkowe, w kórych możemy podpiąć osobny CSS z obejściem problemu.

    Jeśli chodzi o JS to tak naprawdę nie powinno Cię interesować, jakiej przeglądarki używa internauta (chyba, że statystyki liczysz).
    Dla Ciebie jako twórcy skryptu ważne jest czy dana metoda/funkcja/pole/właściwość jest dostępna czy nie.
    W ten sposób jeśli w kolejnej wersji programiści IE wreszcie pokuszą się o standardowe rozwiązania nie będziesz musiał przepisywać kodu.

    Reasumując zamiast:

    if(ie && version > 5) ….

    lepiej:

    if (object.property) …

    Miłego

  11. 11 frob

    Zbigniew: po otwarciu strony w IE7 zauwazylem komunikat o braku flaszki i po dociagnieciu tegoz strona zadzialala. Bosch, jak ja nie cierpie flaszek…

Skomentuj wpis