5 Stimmen

Wie sollte sich eine AJAX-Anwendung verhalten, wenn Javascript deaktiviert ist - gängige Praxis?

Ich bin in den Prozess der Entwicklung ziemlich grundlegenden Web-Anwendung, das ist vor allem so konnte ich lernen, jQuery/ajax/php auf dem Weg (und haben etwas Spaß). Ich möchte es so zugänglich für Benutzer wie möglich zu machen, so sollte es mit Javascript deaktiviert, validieren zu AAA und all das funktionieren. Mit JS deaktiviert wäre natürlich ohne alle Glocken und Trillerpfeifen, aber dennoch sollte die Arbeit zu tun.

Ich möchte Ajax gut nutzen, aber ich verstehe nicht ganz, wie ich damit umgehen soll, wenn JS ausgeschaltet ist.

Sagen wir also, JS ist eingeschaltet, der Benutzer gibt das Formular ab, klickt auf die Schaltfläche "Absenden" und über Ajax werden die Daten an register.php übermittelt (register.php ist im Aktionsattribut des Formulars angegeben). register.php gibt die Daten zurück und jQuery zeigt die entsprechende Meldung an. Alles ohne Neuladen der Seite.

Nun, wenn JS deaktiviert ist, wird die Übermittlung des Formulars an register.php nicht viel nützen.

So wie ich es verstehe, wäre die Lösung, ein PHP-Skript für JS aktiviert, andere für JS deaktiviert zu erstellen. So standardmäßig Form würde Aktion Attribut mit haben nonjs_register.php und wenn JS aktiviert ist, wird das Formular zwangsweise an js_register.php statt Standard nonjs_register.php . Ich kann mir vorstellen, dass es ziemlich mühsam wäre, für jede Benutzerinteraktion mit der Anwendung zwei Skriptseiten zu erstellen, aber das ist die einzige Möglichkeit, die mir im Moment einfällt.

Ich hoffe, das macht alles Sinn, aber bitte lassen Sie mich wissen, wenn meine Erklärung nicht ganz klar ist. Wenn mir jetzt jemand erklären könnte, was die übliche Praxis ist, um mit dieser Art von Problem umzugehen, wäre das großartig.

1voto

JasonWyatt Punkte 5205

Eine Lösung wäre, dass Ihr register.php Datei den HTTP-Header erkennen: Accept in den Anfragen, die es erhält, und es würde auf eine von mehreren Arten antworten:

  1. Wenn die eingehende Anfrage eine

    Akzeptieren: application/xhtml+xml, text/html, multipart/mixed, */*

    Geben Sie dann eine HTML-Seite als Antwort zurück.

  2. Oder wenn es etwas anderes ist, wie zum Beispiel

    Akzeptieren: application/json, application/javascript, text/javascript

    Es würde JSON (in diesem Fall) oder XML zurückgeben, wenn die entsprechenden Mime-Typen aufgelistet wären.

Dann in Ihrem Javascript-Code, würden Sie behandeln die onsubmit Ereignis und überschreiben Sie das normale Verhalten, um das auszuführen, was Sie in Ihrer Frage vorschlagen (aber auch die Accept Kopfzeile, wie oben). Wenn Javascript deaktiviert ist, wird das Formular normal übermittelt und gibt eine Kopfzeile weiter, die Ihr PHP veranlassen sollte, eine Webseite zurückzugeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X