1
私の目的は、「次へ」ボタンをクリックするたびにdbから次の10項目を取得することです。(サーバー側)MarkLogicからデータを取得して一度にいくつかページを作成する方法
したがって、システムから遅れている可能性が高いdbからのショットで100レコードを取得するのではなく、一度に10レコードしか取得しません。以下は
はcomponent.tsでresource.java@Autowired
protected QueryManager queryManager;
@RequestMapping(value = "/retrieveObjects/{page}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Object[]> retrieveObjects(@PathVariable("page") String page){
int pageNum = Integer.valueOf(page);
int start = PAGE_SIZE_TEN * (pageNum - 1) + 1;
SearchHandle resultsHandle = new SearchHandle();
queryDef.setDirectory(DIRECTORY);
queryManager.setPageLength(PAGE_SIZE_TEN);
queryManager.search(queryDef, resultsHandle, start);
return new ResponseEntity<Object[]>(handleSearch(resultsHandle), HttpStatus.OK);
}
で
...私は私が行方不明です他に何、わからない何をやったかの抜粋です
this.restclient.getjson('/api/retrieveObjects/'+page)
.subscribe(objects => {
for(let i=0; i<objects .length; i++){
this.objects.push(objects[i]);
}
});
、コンポーネント:
<div *ngFor="let object of objects | paginate: { itemsPerPage: 10, currentPage: p }">
<div (click)="gotoObject(object.id)">
{{object.id}}
</div>
</div>
<pagination-controls class="pagination" (pageChange)="p = $event;getPage($event)"></pagination-controls>
私は100のレコードを持っています。
しかし、結果は最初の10個のレコードのうちの1ページのみを表示し、「次へ」ボタンは無効になります。
「次へ」ボタンをクリックすると、最初の10レコードが1ページ分表示され、次の10レコードを取得するためにapi/retrieveObjects /が呼び出されます。
OMGを!それだけが必要。 – Ronaldo
これは、まだアイテムの合計数を取得する必要があることを意味します。まだ処理時間が遅くなるのでしょうか? – Ronaldo
@Ronaldo、合計レコードが処理速度を落とすことはありません。それ以上の時間は数ミリ秒かかるかもしれません。 –