ďťż
Podstrony
|
telcocafeTemat nawiązuje do artykułu o systemie komentarzy na blogach i efektach AJAX w Dziennikach Gwiazdowych.Pierwszym zagadnieniem jest gubienie treści w formularzach przez przeglądarki. Piszemy długi komentarz albo post na forum. Po wysłaniu formularza pojawia się błąd. Klikamy WSTECZ. Niestety, straciliśmy efekty naszej pracy. Rozwiązanie: Cache-Control: public albo dłuższy czas ważności Nie zawsze to jest możliwe. O ile w gotowych skryptach można to zmienić, część serwerów narzuca bardzo restrykcyjne nagłówki no-cache, must-revalidate, czasami z przeszłą datą. Może to ma związek z sesjami PHP. Kolejny zarzut dotyczący użycia techniki AJAX: Głównym grzechem jest nadmiar źle napisanego AJAX-u. AJAX pozwala na fajne efekty, ale też wymaga samodzielnej implementacji tego, co normalnie wynika z podstaw działania przeglądarek oraz protokołu HTTP. Stosujmy go zatem wyłącznie wtedy, gdy potrafimy wszystkie te cechy odtworzyć i gdy faktycznie jest to warte świeczki. Autor w 90% ma rację. W przypadku komentowania lub zamieszczania postów użycie AJAX-u jest dość ryzykowne. Popatrzmy jednak na skrypty for. IPB nie boi się stosowania tej techniki. Przykłady: shoutbox, edycja postów, zakładki... Rozwiązanie: usuwać formularz tylko wtedy, gdy post na 100% się dodał do bazy Kiedyś czytałem, że Chrome automatycznie śledzi zmiany dokonywane przez AJAX. W innych przeglądarkach można ręcznie dodać punkt do historii (przeglądnijcie dowolny album na Facebooku). Muszę poznać szczegóły implementacji. Być może skrypt przechwytuje zdarzenie zmiany. Ktoś już stosował podobną technikę? Ze stosowaniem techniki AJAX wiąże się inne zagrożenie. Po otrzymaniu nagłówka Location przeładuje się cała strona, a nie pojedyncze asynchroniczne żądanie. Dla mnie to błąd. Przynajmniej tak jest w Firefoksie. Piernik wie, jakie zagrożenia czyhają na użytkowników nowych technik. Jedno jest pewne - JS / DOM / CSS to istny bałagan! Obiekt XMLHttpRequest i kontrolka ActiveX XMLHTTP istnieją od dawna. Na początku docenione przez zaawansowane aplikacje. Webmasterzy odkryli technikę AJAX dopiero kilka lat temu - tego nie spodziewał się nawet W3. Protokół HTTP oraz język HTML został pierwotnie zaprojektowany dla statycznych stron. Kto wtedy myślał o portalach społecznościowych i zaawansowanych skryptach for / blogów / CMS-ów? Technika AJAX oraz niektóre inne rozwiązania są tylko obejściem na niedoskonałości protokołów pamiętających dinozaury i smoka wawelskiego. Komunikatory i poczta E-mail stały się niewystarczające. Powód: szybciej otworzyć stronę w przeglądarce, nie trzeba uczyć się obsługi kolejnego programu, a pisanie w HTML/CSS/PHP/JS jest łatwiejsze niż aplikacji okienkowych. Jak wyglądałby komunikator społecznościowy? Funkcja rozmowy tekstowej / głosowej / wideo już jest. Trzeba dodać galerie fotek, rozbudowaną wyszukiwarkę, przyjazne profile użytkowników, komentarze, gry (już są), tablice (do wymiany linków, newsów, wyświetlania zdarzeń i powiadomień), grupy... Nie wymieniam dalej - funkcjonalność zależy od inwencji twórców. Nie wiem, czy coś takiego już kiedyś powstało. Chyba Microsoft był najbliżej, ale mu nie wyszło. Na pewno program nie byłby tak uniwersalny jak internetowy portal typu NK lub Facebook. Zatem gdzie stosować technikę AJAX? Czy istnieją uniwersalne rozwiązania do wielu zastosowań, aby przechwycić błędy, wykorzystać funkcję historii w przeglądarkach i nie tracić efektów pracy użytkowników? Obiekt localStorage pozwoli na zapis komentarza / postu / stanu gry / dokumentu w aplikacji, ale z drugiej strony jest to efektywne? Po nieświadomym wyczyszczeniu bazy w przeglądarce wracamy do punktu wyjścia. Użytkownik Ferrari edytował ten post 28 lipiec 2010, 23:43 Głównym grzechem jest nadmiar źle napisanego AJAX-u. AJAX pozwala na fajne efekty, ale też wymaga samodzielnej implementacji tego, co normalnie wynika z podstaw działania przeglądarek oraz protokołu HTTP. Dlatego jquery jest takie popularne. Praktycznie likwiduje ten problem. Kiedyś czytałem, że Chrome automatycznie śledzi zmiany dokonywane przez AJAX. W innych przeglądarkach można ręcznie dodać punkt do historii (przeglądnijcie dowolny album na Facebooku). Muszę poznać szczegóły implementacji. AFAIR to opiera się na dodawaniu ścieżki po hashu. W przeglądarce to jedynie uaktywnia przycisk "cofnij", reszta jest zaimplementowana ręcznie. Ze stosowaniem techniki AJAX wiąże się inne zagrożenie. Po otrzymaniu nagłówka Location przeładuje się cała strona, a nie pojedyncze asynchroniczne żądanie. Pierwsze słyszę. Z drugiej strony nie specjalnie widzę powód, żeby używać location w ajaxach. Piernik wie, jakie zagrożenia czyhają na użytkowników nowych technik. Jedno jest pewne - JS / DOM / CSS to istny bałagan! Powszechnie się tego używa od jakichś 4-5 lat - większość zagrożeń jest już znana. Z doświadczenia wiem, że najwięcej problemu sprawia różna interpretacja JS przez przeglądarki. Nad DOM/CSS relatywnie łatwo zapanować z pomocą firebuga. Protokół HTTP oraz język HTML został pierwotnie zaprojektowany dla statycznych stron. Praktycznie każda uzywana dziś technologia była projektowana z myślą o czymś innym, od TCP/IP zaczynając przez SMTP, POP3, flasha, aż do HTTP i HTMLa - dlatego powstaje mnóstwo protez do każdego z nich - inaczej się nie da - projektowanie zabiera mnóstwo czasu, a potrzeby nie stoją w miejscu. szybciej otworzyć stronę w przeglądarce, nie trzeba uczyć się obsługi kolejnego programu, a pisanie w HTML/CSS/PHP/JS jest łatwiejsze niż aplikacji okienkowych. Raczej kwestia uniwersalności i przenośności. Interfejsu aplikacji i tak się musisz nauczyć, a co do szybkości - już ponad rok pracuję nad pewną aplikacją... powiedzmy biurową - myślę, że dało by się to szybciej napisać powiedzmy w C# - oczywiście ze stratą dla modułów pracy grupowej i już z koniecznością instalacji. No i dystrybucja byłą by trudniejsza. Zatem gdzie stosować technikę AJAX? Czy istnieją uniwersalne rozwiązania do wielu zastosowań, aby przechwycić błędy, wykorzystać funkcję historii w przeglądarkach i nie tracić efektów pracy użytkowników? Tam gdzie jest z niej realny pożytek - nie ma sensu pchać wszędzie tylko dla fajerwerków. Komentarze na blogu w ajaxie to ihmo przerost formy nad treścią. Co do błędów to znów: jQuery umożliwa proste i przyjemne kontrolowanie zapytań. Obiekt localStorage pozwoli na zapis komentarza / postu / stanu gry / dokumentu w aplikacji, ale z drugiej strony jest to efektywne? To tylko przerośnięte cookie i do tych samych zastosowań się nadaje - tyle, ze na większą skalę. Czepiasz się. Porównaj Gmaila w wersjach HTML i interakcyjnej. Zobaczysz różnicę. Ajaksa można używać do wielu rzeczy - kalendarz, gwiazdki z ilością głosów, zajętość loginu podczas rejestracji, dynamiczny podgląd treści, liniowa edycja, jak to ma IPB; ładowanie listy komentarzy - choć mnie to się nie podoba. Temat nawiązuje do artykułu o systemie komentarzy na blogach i efektach AJAX w Dziennikach Gwiazdowych. Zapewne chodziło Ci o Dzienniki zyxowe :) To tylko przerośnięte cookie i do tych samych zastosowań się nadaje - tyle, ze na większą skalę. Należy dodać - ciasteczko, które nie jest wysyłane do serwera. Aha, co do systemu komentarzy, to namiastkę ma YouTube. Dezaktywuje formularz i wysyła formularz Ajaksem. Nie wiem jak w razie błędu, ale pewnie aktywuje formularz. Takie rozwiązanie jest najbardziej rozsądne. A jeśli chodzi o to, że treść znika, to najlepszym wyjściem jest Opera. Piszę sobie tę odpowiedź, kliknąłem na jakiś link, by coś zobaczyć, ruch myszą w lewo i mam znów formularz z tym tekstem. Użytkownik andrzej_aa edytował ten post 29 lipiec 2010, 10:17 |
|||
Sitedesign by AltusUmbrae. |