Strona kontaktowa jest skońchona. Jak daję radę z wyłączonym javascript

fullstackdevpw.addEventListener('stageComplete', function(e) {
    if (e.stage === 1) alert('Contact page is complete!');
});

Hej, obaj moi czytelnicy!

Strona kontaktowa jest skońchona. To był pierwszy etap mapy drogowej rozwoju fullstackdev.pw.

Zajęło to trochę czasu, ponieważ chciałem ubezpieczyć moją skrzynkę odbiorczą przed spamem, ale nie kosztem wygody użytkownika. Jestem też użytkownikiem. Dla mnie wygoda oznacza żadnych "progów zwalniających" – chodzi mi o captcha. Zatem wszelkie kontrole przeciwko botom powinny być wykonywane niewidocznie dla ludzi. Ale wtedy powstaje pytanie: miałem kilka pomysłów, jak to zrobić z Javascript, ale co jeśli użytkownik wyłączył go w swojej przeglądarce? Tego typu użytkownicy nie będą mogli wypełnić formularza :(

Więc,

czy powinienem brać pod uwagę użytkowników z wyłączonym Javascript?

Postanowiłem ograniczyć dla nich niktóre funkcje. Tak, wiem, że dla wele osób są poważne powody wyłączyć Javascript. Mam swoją opinię na temat każdego z nich.

Prywatność

Ich głównym troską jest prywatność. Martwię się także o moją prywatność. Witryna osobista może ujawnić dane, które chciałbym ukryć przed botami, ale pozostawać dostępnymi dla użytkowników. Pomyśl o swoim e-mailu lub numerze telefonu. Po prostu nie mam pomysłu na wykonanie tego zadania bez przetwarzania danych i modyfikacji strony w oknie przeglądarki.

Podstawową ideą jest to, że bota raczej nie użyje JS, nie przeczyta strony przez ekran ani nie kliknie wskaźnikiem sprzętowym. Chociaż niektóre z tych celów są możliwe w przeglądarkach w trybie bezgłowym, ale w połączeniu zapewniają one podstawową ochronę przed automatycznymi wypełniaczami formularzy.

Powiedziawszy to, szanuję prywatność czytelnika, więc wszelkie szczegóły udostępnione przez moich użytkowników nigdy nie będą przechowywane ani na serwerze, ani przekazywane innym podmiotom, ani wykorzystywane w żaden inny sposób. Być może dodam później Zrzeczenie Się i Politykę Prywatności. Nie używam nawet plików cookie, z wyjątkiem tych domyślnych używanych przez CMS do autoryzacji użytkownika (mnie).

Wydajność

Miałem złe doświadczenia z witrynami zbyt ciężkimi dla moich urządzeń. Nigdy nie posiadałem hi-endowego lub najnowszego sprzętu, więc wiem, o czym mówię. Ale zamiast wyłączyć JS dla wszystkich stron internetowych, po prostu unikam używania źle wykonanych...

Komputer, którego używam do pracy, też nie jest hi-endem. To jest mały a lekki laptop sprojektowany dla mobilności, dlatego nie bardzo wydajny. Wieć jestem nie tylko wrażliwy na wydajność witryn internetowych, ale potrafię wykryć uczucie wydajności w trakcie budowy strony, żeby to nie bolało użytkownika.

Aby zminimalizować problemy z wydajnością, unikam korzystania z bibliotek JS, które były najbardziej przydatne w przeszłości, kiedy każda przeglądarka miała swój własny "standard" dla technologii internetowych. W dzisiejszych czasach [kiedy era IE<9 bezpowrotnie minęła], można bezpiecznie używać czystego Javascriptu (ES5).

Także zawsze używam tryb ścisły, który ma dobry wpływ na wydajność.

I w końcu, moję użycie JS jest minimalne. Moje większe obawy dotyczące wydajności to wykorzystanie animacji a inny cukier wizualny CSS. Właśnie z tego powodu nie jestem zupęłnie ścięsliwy stroną domową. Chcę naprawić to szybko.

Ruch danych

Użytkownik na imię heylem, autor obranej odpowiedzi ze strony, na którą odnosiłem powyżej, narzeka na to że niektóre witryny "odświeżają Swiat prawie każde 15 sekund bez poważnego na to powodu". Nigdy nie widziałem takich aplikacji na własne oczy. Nawet przyjmując że autor wykorzystał przesadę żebyś podkreślić ważność utrzymania przekazania danych przez Internet na poziomie minimalnym, technologia AJAX została wynaleziona akuratnie w tym celu: odnowienia tylko części strony, wysłania formularza na serwer, dobawienia towaru w koszyk itp itd. Nie mam na myśli warunków, które spowodują przekazanie w taki sposób więcej danych niż przeładowanie calej strony, szczególnie biorąc pod uwage różne media – zdjecia, wideo, czcionki, biblioteki JS, CSS... Wieć dany zarzut brzmi zupełnie absurdalnie dla mnie. Serio, dlaczego takie ludzi używają komputery i w ogóle elektrykę, gdy na tyle ostro upierają się takim wygodnym technologią.

Dostępność

Obecnie fullstackdev.pw nie zawiera ważnej informacji dla szerokiej publiczności, stąd nie adaptowałem witryny dla niepełnosprawnych ludzi. Ale koniecznie muszę zanurzyć się w technologie ARIA i w jaki sposób używać JS żebyś nie przeszkodzić dostępności. Narazie mój JS nie blokuje i nie ukrywa żadnych informacji od czytelnika, bez wzgłędu na jego zdolności.

Docelowa publiczność

Na końcu proponuję zastanowić się, kim są te ludzi, którzy wyłączają JS. Gdy dobrze zrozumiałem, większość są profesjonalisty a użytkownicy, którzy są zadowolone kontentem zgenerowanym przez server, są zbyt zaniepokojone swoją przywatnością. Pytanie: czy oni napiszą do ciebie, ujawniając swój e-mail, chy ich mogą interesować usługi programisty front-endu, czy oni, broń Boże, zapłacą ci online? Mi się wydaję, że, jak mówił właściciel firmy, w której pracowałem przez 8 lat, "nie nasz klient".

Oczywiście, że chociaż nie rozpatrywam takich użytkowników jako klienta, nie ignoruję je zupełnie. Oni mogą wolnie przeglądać stronę bez żadnych ograniczeń, a o funkcje, tkóre im zostają niedostępne, informuję przez <noscript> tag.

Telegram

Wracamy do formularza. Każdą wiadomość wysłaną przez niego ja otrzymuję od bota w swoim telegram, który jest najlepszym dla mnie messengerem gdy chodzi o synchronizacje między urządzeniami, zużycie zasobów sprzętu a inne zalety. Jeszcze nie było żebyś wiadomość nie dotarła, jak to czasami trafiało sie z mailami.

Oraz zrobiłem niestandardowe i sympatyczne wyskakujące okienka powiadomień, jak mi się wydaję. Zapraszam oszcować formularza :)