Im Projekt gibt es immer ein Problem: Nach der Eingabe von Schlüsselwörtern in die Suchleiste (siehe Abbildung 1) sollte nach der festgelegten Geschäftslogik der Server nach der Anforderung die ersten 7 Daten in der Abfrage zunächst zurückgeben. Wenn der Client anscheinend geladen wird, suchen Sie weiter nach den anderen 7 Daten. Aber die tatsächliche Situation ist ungewiss. Auf der Serverkonsole (siehe Abbildung 2) können Sie Begno bis 126 sehen, was dem Client entspricht, der das 127 -fache dem Server anfordert, was ein unerträgliches Ergebnis ist.
Abbildung 1 Client -Suchleiste
Abbildung 2 Serverkonsole
Es kann geschlossen werden, dass die Geschäftslogik des Kunden ein Problem gibt. Kehren Sie zum Client zurück, anzeigen Sie die Quellcode -Logik und ändern Sie sie wie folgt:
Regler
$ scope.medSearchmore = function () {console.log ("Pull-up-Last ......" + isFineLed); if (isFinished == 0) {begin += pcnt; var data = {"begno": begin, // startnummer "pagenum": pagenum, // Rückgabenummer pro Seite "Searchby": SearchBy}; if (searchType == 1) {data.classid = SearchKey; console.log (data.classid); // ------- 1 AppCallServer ($ http, "9002", Daten, Funktion (Daten) {console.log ("Drop down, um das Queryergebnis Rootscope.Med:"+Json.Stringify (Data.Data)) für (var i = 0; i <data.pcnt; i+) {$ Wurzelwurzel) {$ roota) {$ WOOSTSCOPE.MED.MED.MED.MED.MED.MED.MED.MED.MED.MED.PUSH (DATA) zu aktualisieren. // Der Status wird mit Daten fertiggestellt. $ timeout (function () {$ ionicloading.hide ();}, 1200); }} else {// Das Medikament wurde abfragt $ scope.nomore = true; } $ timeout (function () {$ scope. };Sicht
<!-Wenn der Benutzer die Fußzeile oder in der Nähe der Fußzeile erreicht, ermöglicht die Ionen-Infinite-Scroll-Anweisung eine Funktion. Wenn der Benutzer über den Inhalt unten hinausrollt, wird der angegebene On-Infinite-ausgelöst-> <!-Wenn keine Daten geladen werden, können Sie eine einfache Methode verwenden, um die unendliche Schriftrolle zu verhindern, das heißt, das Angular ng-if-Anweisungen-> <! On-infinite = "medsearchmore ()" Distanz = "0,01%" icon = "Ion-Loading-C"> </Ion-infinit-SCROLL> <div ng-if = "nomore" align = "center"> <p> Keine Medikamente </p> </div>
Nach den obigen Änderungen können unnötige Anfragen vermieden werden.