프로젝트에는 항상 문제가 있습니다. 검색 창에 키워드를 입력 한 후 (그림 1 참조), 확립 된 비즈니스 로직에 따르면 서버가 요청을받은 후 먼저 쿼리에서 처음 7 개의 데이터를 반환해야합니다. 클라이언트가로드되는 것처럼 보이면 다른 7 가지 데이터를 계속 검색하십시오. 그러나 실제 상황은 불확실합니다. 서버 콘솔 (그림 2 참조)에서는 126 번의 Begno를 볼 수 있으며, 이는 서버에 127 배를 요청하는 클라이언트와 동일합니다. 이는 참을 수없는 결과입니다.
그림 1 클라이언트 검색 창
그림 2 서버 콘솔
고객의 비즈니스 논리에 문제가 있다고 결론 지을 수 있습니다. 클라이언트로 돌아가서 소스 코드 로직을보고 다음과 같이 수정하십시오.
제어 장치
$ scope.medsearchmore = function () {console.log ( "풀업 하중 ......" + isfinished); if (isfinished == 0) {시작 += pcnt; var data = { "begno": 시작, // 시작 번호 "pagenum": pagenum, // 페이지 당 반환 번호 "searchby": searchby}; if (searchType == 1) {data.classId = searchKey; console.log (data.classid); ///----- 1 AppCallServer ($ http, "9002", data, function (data) {console.log ( "쿼리 결과 rootscope.med :"+json.stringify (data.data)); (var i = 0; i <data.pcnt; i ++) {$ rootscope.med.med.med.med.med.med.med.med. 완료되었습니다. // 약물 쿼리 (isfinished == '1') {$ scope.nomore = false}; $ timeout (function () {$ ionicloading.hide ();}, 1200); }} else {// 약물은 $ scope.nomore = true로 쿼리되었습니다. } $ timeout (function () {$ scope. $ broadcast ( 'scroll.infinitescrollcomplete');}, 1200); };보다
<!-사용자가 바닥 글에 닿거나 바닥 글에 도달하면 Ion-Infinite-Scroll 지시문을 사용하면 기능을 호출 할 수 있습니다. 사용자가 하단의 내용을 넘어서 스크롤하면 지정된 온- 피니 나이트가 트리거됩니다.> <!-더 이상 데이터로드가 없으면 간단한 방법을 사용하여 무한 스크롤을 방지 할 수 있습니다. 즉, 각도 NG-IF Directive-> <!-NomORE의 초기 값을 처음으로 클릭하여 분류 query를 클릭 할 수 있습니다. on-infinite = "medsearchmore ()"거리 = "0.01%"icon = "Ion-loading-c"> </iion-infinite-scroll> <div ng-if = "nomore"align = "center"> <p> 더 이상 약물 없음 </p> </div>
위의 수정 후 불필요한 요청을 피할 수 있습니다.