Sempre há um problema no projeto: depois de inserir palavras -chave na barra de pesquisa (veja a Figura 1), de acordo com a lógica de negócios estabelecida, deve ser que, depois que o servidor receber a solicitação, ele retornará primeiro os 7 primeiros dados da consulta. Quando o cliente parecer carregar, continue pesquisando os outros 7 dados. Mas a situação real é incerta. No console do servidor (consulte a Figura 2), você pode ver o BEGNO até 126, o que é equivalente ao cliente solicitando 127 vezes ao servidor, o que é um resultado insuportável.
Figura 1 Barra de pesquisa de clientes
Figura 2 Console do servidor
Pode -se concluir que há um problema com a lógica de negócios do cliente. Retorne ao cliente, visualize a lógica do código -fonte e modifique -a da seguinte forma:
Controlador
$ scope.medSearchMore = function () {console.log ("Carga de pull-up ......" + isfinished); if (isfinished == 0) {Begin += pcnt; var dados = {"begno": BEGIN, // Número inicial "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", dados, função (dados) {console.log ("Desça para refrescar o resultado da consulta Rootscope.med:"+json.stringify (data.data)) para (var i 0; i <data.pc; i ++) {Data); O status de atualização é concluído com dados.isfinished; $ timeout (function () {$ ionicloading.hide ();}, 1200); }} else {// O medicamento foi consultado $ scope.nomore = true; } $ timeout (function () {$ scope. $ transmitido ('scroll.infinitescrollComplete');}, 1200); };visualizar
<!-Quando o usuário chega ao rodapé ou perto do rodapé, a diretiva ion-infinite-roll permite chamar uma função. Quando o usuário rola além do conteúdo na parte inferior, o Infinite especificado será desencadeado-> <!-Quando não houver mais carregamento de dados, você pode usar um método simples para evitar rolagem infinita, ou seja, a operação angular do NG-IF-não-roll, não-o-scring, não o que você está dando a operação, e a primeira vez que você clica na operação-não o que você está dando operação, e a primeira vez que você clica na operação-não clica na operação, não clicar na operação, não clicar na operação, não clicar na operação-não-o que você clica na operação. on-infinite = "MedSearchMore ()" DOZE = "0,01%" icon = "ion-carregamento-c"> </ion-Infinite-scroll> <div ng-if = "nomore" align = "Center"> <p> Não há mais medicamentos </p> </div>
Após as modificações acima, solicitações desnecessárias podem ser evitadas.