プロジェクトには常に問題があります。検索バーにキーワードを入力した後(図1を参照)、確立されたビジネスロジックによれば、サーバーがリクエストを受信した後、最初にクエリの最初の7つのデータを返します。クライアントがロードされているように見える場合は、他の7つのデータを検索し続けます。しかし、実際の状況は不確かです。サーバーコンソール(図2を参照)では、126までBegnoを見ることができます。これは、クライアントがサーバーに127回要求することに相当します。これは耐え難い結果です。
図1クライアント検索バー
図2サーバーコンソール
クライアントのビジネスロジックに問題があると結論付けることができます。クライアントに戻り、ソースコードロジックを表示し、次のように変更します。
コントローラ
$ scope.medsearchmore = function(){console.log( "プルアップロード......" + isfinished); if(isfinished == 0){begin += pcnt; var data = {"begno":begin、// start number "pagenum":pagenum、//ページごとの返信番号 "searchby":searchby}; if(searchType == 1){data.classid = searchKey; console.log(data.classid); // ------- 1 AppCallServer($ http、 "9002"、data、function(data){console.log( "console.log(" query resultscope.med: "+json.stringify(data.data));更新が完成しました。 $ timeout(function(){$ ionicloading.hide();}、1200); }} else {//薬は$ scope.nomore = true; } $ timeout(function(){$ scope。$ broadcast( 'scroll.infinitescrollcomplete');}、1200); };ビュー
<! - ユーザーがフッターまたはフッターの近くに到達すると、Ion-infinite-scrollディレクティブを使用すると、関数を呼び出すことができます。ユーザーが下部のコンテンツを超えてスクロールすると、指定されたオンフィニットがトリガーされた場合 - > <! - これ以上のデータロードがない場合、単純な方法を使用して無限のスクロールを防ぐことができます。 on-finite = "medsearchmore()" distance = "0.01%" icon = "ion-loading-c"> </ion-infinite-scroll> <div-if = "nomore" align = "center"> <p>もう薬物</p> </div>
上記の変更の後、不必要なリクエストを回避できます。