Frage

Ich habe eine Web-Anwendung, die unter anderem eine Tabelle mit Elementen enthält erstellt einen Ajax-Rückruf verwenden. Ein Bündel von Formularfeldern an der Spitze der Tabelle erlauben Sie mir, um die Elemente zu filtern, die nach verschiedenen Kriterien in der Tabelle angezeigt werden und zeigen es.

Einige Teile der Tabelle haben Listen von Elementen mit einem [X] neben ihnen markiert, dass ich mit einem Klick auf diese Elemente löschen.

Nun, wenn ich dies tun, wurden die nicht-Ajax / JavaScript Weise würde die Seite eine Reihe von POSTed Datenfelder erhalten und dann würde die Tabelle entsprechend machen. Ich kann dies tun, aber ich mag auch die gesamte Einrichtung zu Ajaxify. Meine Fragen sind in Bezug auf diese.

  1. Wie würde ich die [X] -Taste erstellen. Eine einfache <a> würde „Arbeit“, aber es ist ein GET Zustand zu modifizieren, damit ich will das nicht tun. So wie ich es jetzt tue, ist eine kleine Form mit einem versteckten Parameter als das Element gelöscht werden hält und eine Stil-Taste senden, die die [x] ist. Wenn ich das ajaxify, kann ich die Antwort bekommen und tun das Nötige.

  2. Wie halte ich meinen Backend-DRY? Ich will nicht zwei völlig unterschiedliche Bit-Code für die Ajaxified Version und die regulären. Was ich jetzt tue, ist mit der nicht-Ajax-Version auf eine URL einreichen, die den Zustand ändert und leitet dann zur Hauptseite wieder (ähnlich ein PRG-Typ-System). Mit dem Ajax aktiviert ist, rufe ich einfach die URL und die Umleitung ignorieren, aber die zurückgegebenen Daten verwenden, um die Tabelle anzupassen. Ist dies der "richtige Weg"?

  3. Jede andere Beratung über Graceful Degradation auf, wie mein Backend trocken zu halten?

War es hilfreich?

Lösung

würde ich jede Zeile in eigene Form der es ausdrückte (mit method='POST') und umfassen ein verstecktes Feld zu sagen, welches Element gelöscht werden soll. Die [X] würde das Formular abgesendet haben, und in der Form des einreichen Fall, wenn kein XmlHttpRequest vorhanden ist, einfach das Formular an den Server senden, die wiederum die Position und Umleitung auf die gleiche Seite löschen würde (dies ist eine gute Praxis ein erneutes Laden von zu vermeiden erneut einreichen den Lösch POST).
Wenn ein XmlHttpRequest vorhanden ist, legen Sie es mit der ID der Sache POST bis zu löschen und dann die Zeile zu entfernen, wenn die Anforderung erfolgreich ist. Sie könnten einen Flag in dem AJAX-Request gesetzt, so dass Umleitung nicht geschieht, nur einen Erfolg (200 OK).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top