Selalu ada masalah dalam proyek: Setelah memasukkan kata kunci di bilah pencarian (lihat Gambar 1), menurut logika bisnis yang sudah mapan, seharusnya setelah server menerima permintaan, pertama -tama akan mengembalikan 7 lembar data pertama dalam kueri. Ketika klien tampak memuat, terus cari 7 lembar data lainnya. Tetapi situasi aktual tidak pasti. Pada konsol server (lihat Gambar 2), Anda dapat melihat Begno hingga 126, yang setara dengan klien yang meminta 127 kali ke server, yang merupakan hasil yang tak tertahankan.
Gambar 1 Bilah Pencarian Klien
Gambar 2 Konsol Server
Dapat disimpulkan bahwa ada masalah dengan logika bisnis klien. Kembali ke klien, lihat logika kode sumber, dan memodifikasinya sebagai berikut:
Pengontrol
$ scope.medsearchmore = function () {console.log ("Load pull-up ......" + isfinished); if (isFinished == 0) {begin += pcnt; var data = {"begno": begin, // mulai nomor "pagenum": pagenum, // nomor pengembalian per halaman "searchby": searchby}; if (searchType == 1) {data.classid = SearchKey; console.log (data.classid); // ------- 1 appcallserver ($ http, "9002", data, fungsi (data) {console.log ("turunkan untuk menyegarkan hasil query rootscope.med:"+json.stringify (data.data)); untuk (var i = 0; i <data. // Status selesai diselesaikan dengan data. $ timeout (function () {$ ionicloading.hide ();}, 1200); }} else {// Obat telah ditanyakan $ scope.nomore = true; } $ timeout (function () {$ scope. $ siaran ('scroll.infinitescrollcomplete');}, 1200); };melihat
<!-Ketika pengguna mencapai footer atau di dekat footer, arahan ion-infinite-scroll memungkinkan Anda untuk memanggil fungsi. When the user scrolls beyond the content at the bottom, the on-infinite specified will be triggered-> <!--When there is no more data loading, you can use a simple method to prevent infinite scrolling, that is, the angular ng-if directive-> <!--Set the initial value of noMore to true, and the first time you click on the classification query, no pull-down loading operation--> <ion-infinite-scroll On-Infinite = "MedSearchMore ()" jarak = "0,01%" ikon = "ion-loading-c"> </ion-infinite-scroll> <v ng-if = "nomore" align = "center"> <p> Tidak ada lagi obat </p> </div>
Setelah modifikasi di atas, permintaan yang tidak perlu dapat dihindari.