5

Czy są jakieś mechanizmy awaryjne w Ruby na Railsach 3.2 i 4.0, gdy ktoś ma wyłączoną obsługę JavaScript?RoR z wyłączoną obsługą JavaScriptu

Jak zareagowałaby aplikacja, szczególnie podczas korzystania z żądania ajax. Czy przywróci normalne żądania?

Pytam o to, ponieważ potrzebuję strony internetowej, która może obsługiwać żądania z przeglądarek tekstowych dla osób niepełnosprawnych.

Jakie są strategie, jeśli nie ma domyślnego rozwiązania rezerwowego.

Odpowiedz

0

Po niektórych badań znalazłem odpowiedź:

Ruby on Rails używa dyskretny javascript, aby tego dokonać. Każde żądanie Ajax będzie następnie z wdziękiem "ulegać degradacji" do zwykłego żądania POST lub GET, jeśli javascript jest wyłączony. Jedyną czynnością, która nie będzie działać po wyjęciu z pudełka, jest usunięcie, ponieważ jest to jedyne żądanie, które nie jest w pełni obsługiwane przez wszystkie przeglądarki i wymaga js.

Warto wiedzieć, że w tym railscast: http://www.youtube.com/watch?v=t_MBLfrKTiE

1

Zobacz ten post. Stop loading the page if Javascript is disabled

Generalnie nie mogę myśleć o żadnym mechanizmie awaryjnym - zauważ, że ogromna część żądań wykonywanych przez szyny to w rzeczywistości żądania ajaxowe, ponieważ niemożliwe jest wysłanie PUT lub DELETE over (zamiast żądania usunięcia, szyny wysyłają zapytanie o wysyłkę ajaxową z data: {"_method"="delete"}).

Krótko mówiąc, dla mnie wyłączenie JS spowoduje poważne złamanie strony, dziś sprawdzę to.

+0

To nie żądanie AJAX, to po prostu 'Rack :: MethodOverride' middleware, która wyszukuje' _method' param we wniosku i odpowiednio zmienia czasownika. – synapse

1

Nie mam dużego doświadczenia z RoR, ale podejrzewam, że jest to bardziej kwestia sposobu projektowania architektury front-end. Moje ograniczone zrozumienie jest takie, że RoR nie dostarczył żadnego javascript "po wyjęciu z pudełka"; Domyślnym stanem jest tworzenie widoków, które generują płaski HTML, który możesz ubierać jak lubisz za pomocą JS i CSS.

Twój HTML powinien być napisany tak, aby użytkownik mógł uzyskać dostęp do wszystkich treści, które najbardziej go interesują, bez konieczności polegania na JavaScript, aby to zrobić. Oznacza to, że należy korzystać z JS tylko w celu uzyskania dostępu do usługi augment. W języku powszechnej praktyki front-end, wykonaj progressive enhancement.