Siempre hay un problema en el proyecto: después de ingresar palabras clave en la barra de búsqueda (ver Figura 1), de acuerdo con la lógica comercial establecida, debería ser que después de que el servidor reciba la solicitud, primero devolverá las primeras 7 piezas de datos en la consulta. Cuando el cliente parece cargarse, continúe buscando los otros 7 datos de datos. Pero la situación real es incierta. En la consola del servidor (ver Figura 2), puede ver Begno hasta 126, que es equivalente al cliente que solicita 127 veces al servidor, que es un resultado insoportable.
Figura 1 Barra de búsqueda de clientes
Figura 2 Consola de servidor
Se puede concluir que hay un problema con la lógica comercial del cliente. Regrese al cliente, vea la lógica del código fuente y modifíquelo de la siguiente manera:
Controlador
$ scope.medsearchmore = function () {console.log ("carga de pull-up ......" + isfinished); if (isfinished == 0) {begin += pcnt; var data = {"begno": begin, // inicio del número "pagenum": pagenum, // número de retorno por página "SearchBy": SearchBy}; if (searchType == 1) {data.classid = searchKey; console.log (data.classid); // ------- 1 AppCallServer ($ http, "9002", data, function (data) {console.log ("desplegable para actualizar el resultado de la consulta rootscope.med:"+json.stringify (data.data)); for (var i = 0; i <data.pcnt; i ++) {$ rootscope.med.push (data.dates) El estado termina con Data.Isfinished; // $ timeOut (function () {$ ionicloading.hide ();}, 1200); }} else {// El medicamento ha sido consultado $ scope.nomore = true; } $ timeOut (function () {$ scope. $ broadcast ('scroll.infinitescrollcomplete');}, 1200); };vista
< Cuando el usuario se desplaza más allá del contenido en la parte inferior, el en infinito especificado se activará-> <!-cuando no hay más carga de datos, puede usar un método simple para evitar el desplazamiento infinito, es decir, la directiva angular ng-if-> <! On-InFinite = "MedSearchmore ()" Distance = "0.01%" Icon = "Ion-Loading-C"> </ion-Infinite-Scroll> <div ng-if = "nomore" align = "centro"> <p> no más medicamentos </p> </div>
Después de las modificaciones anteriores, se pueden evitar solicitudes innecesarias.