2017-03-10 7 views
0

Ich arbeite mit einer Webanwendung, die eine Javascript-Front-End und Tomcat/Java-Server hat. Das Frontend ist einfach eine Tabelle, in der der Benutzer die Tabelle ändern und weitere Zeilen hinzufügen und das Formular ausfüllen kann. Ich habe Code geschrieben, damit der Benutzer die Tabelle speichern kann. Er sendet die Daten im Formular über eine http-Anfrage an den Server, der Server schreibt die Daten in eine Oracle-Datenbank, alles funktioniert super.Technik für Server Empfangen von Chunked Daten vom Client

Da die Tabelle jedoch wächst, ist es nicht mehr möglich, alles in einer Anfrage zu senden. Ein Vorschlag bestand darin, die Zeilen in verschiedene Anfragen aufzuteilen, aber dann, wenn eine Anfrage erfolgreich ist und eine andere fehlschlägt, ist die Oracle-Tabelle falsch.

Was ist die bevorzugte Methode, um dem Server mehrere Datenblöcke zu senden, während der Server nicht damit zu arbeiten beginnt, bis alle Daten empfangen wurden? Ich habe viele SO Fragen über TCP-Verbindungen in Bezug auf Daten-Chunking gesehen, aber nicht wirklich um HTTP-Anfragen.

Danke.

+0

Müssen Sie dem Benutzer wirklich die gesamte Tabelle * anzeigen *? Dies ist nicht skalierbar. In jeder praktischen Implementierung müssen Sie dem Benutzer Filter bereitstellen. Dann sollten Sie die geänderten Zeilen sicher nur gemäß den gegebenen Antworten senden. – EJP

+0

Guter Punkt, aber in meinem Fall benötigt die Erstellung der Tabelle (~ 50 Zeilen mit ein paar Spalten Text) mehr Daten gesendet werden als das aktuelle Limit. Ich sollte wahrscheinlich Ihren Vorschlag einbeziehen, aber es gibt immer noch das Problem, was ist, wenn der Client mehr Änderungen wünscht, als in der Größenbeschränkung für HTTP-Anfragen ausgedrückt werden können? – zachvac

+0

Gleiche Antwort. Gib ihm nicht diese Gelegenheit. Zeigen Sie ihm nur so viele Zeilen, wie gleichzeitig geändert werden können. – EJP

Antwort

0

Warum versuchen Sie, die gesamte Tabelle bei jeder Anfrage zu senden? Senden Sie einfach den Unterschied. Ich nehme an, dass Sie IDs für die Zeilen oder eine Kennung haben. Senden Sie die Liste der IDs der gelöschten Zeilen, die Liste der neuen Zeilen und die Liste der aktualisierten Zeilen. Auf diese Weise müssen Sie nicht alle Tabellendaten senden.

+0

Guter Punkt, aber in meinem Fall benötigt die Erstellung der Tabelle (~ 50 Zeilen mit ein paar Spalten Text) mehr Daten gesendet werden als das aktuelle Limit. Ich sollte wahrscheinlich Ihren Vorschlag einbeziehen, aber es gibt immer noch das Problem, was ist, wenn der Client mehr Änderungen wünscht, als in der Größenbeschränkung für HTTP-Anfragen ausgedrückt werden können? – zachvac

0

Haben Sie wirklich müssen Sie die gesamte Tabelle jedes Mal senden, wenn der Benutzer es ändert? Warum nicht einfach eine API erstellen, mit der Sie nur die geänderten Zeilen ändern können? Es scheint seine viel bessere Lösung zu sein. Auf diese Weise sendet der Client nur die relevanten Daten, z. die einzelne hinzugefügte/geänderte Reihe.

Verwandte Themen