簡體   English   中英

社區版中的 ag-grid 客戶端行模型 - 不像官方文檔那樣表現

[英]ag-grid Client-Side row model in community edition - not behaving as official docs

在 Angular 7 中使用 ag-grid-community 22.1.1 版本

如果我們使用官方文檔,那么客戶端模型應該只加載可用的記錄或以分頁大小設置的記錄。 但這不會發生。 當瀏覽器發出請求時,它會等待所有記錄加載完畢並在視圖開始呈現之前返回響應。

有人可以解釋一下我對以下措辭的理解錯誤嗎

這里有更詳細的經驗法則。

如果您不確定,請使用默認客戶端。 網格可以處理大量數據(100k+ 行)。 即使您從服務器返回了數千行,網格也只會呈現屏幕上可見的內容(大約 40 行,取決於您的屏幕大小)。 你不會用太多數據殺死網格——而是你的瀏覽器會在網格出現問題之前耗盡內存。 因此,如果您不確定,請先使用客戶端行模型,僅在需要時進行更改。 使用客戶端,您可以通過網格為您完成排序、過濾、分組、旋轉和聚合。 除非另有說明,否則文檔中的所有示例都使用客戶端模型。

鏈接到解釋不同行模型以及何時使用什么的官方文檔

基於此,如果我期望我的 api 將返回 500 條記錄,而我的[paginationPageSize]="40"難道它不應該加載 40 條記錄並呈現,盡管在后台它仍然可以將所有其他剩余記錄加載到瀏覽器緩存中。 但看起來它正在等待整個記錄集加載到瀏覽器緩存,然后開始渲染,這會影響性能。

下面是最容易混淆的行

網格只會呈現屏幕上可見的內容(大約 40 行,取決於您的屏幕尺寸)

ag-grid並且就此而言,客戶端模型中的任何網格將首先獲取所有記錄,然后開始在瀏覽器中呈現。 但是,它只會呈現適合可見視圖的行數。 這是有充分理由的。

考慮一個場景,您的應用程序的用戶正在對網格中的某個字段進行搜索/過濾,如果當時網格沒有包含所有數據(它仍在后台從服務器獲取),它甚至可能返回Not Found雖然匹配的記錄存在於即將到來的數據中。 排序分組等操作也會有同樣的問題。

ag-grid doc 上的這個鏈接清楚地說明了

默認情況下,網格希望您預先提供所有數據 換句話說,您的應用程序將完整的數據集加載到客戶端,然后將其完整地傳遞到網格 這與服務器端數據形成對比,其中數據主要保存在服務器上並分部分加載到網格中。

現在,它在視圖中呈現 40 條左右的記錄的原因是因為為所有行創建和呈現 HTML 會使頁面非常緩慢或無法使用。

如果您希望從服務器以塊的形式獲取數據,則需要選擇服務器端模型。 但是接下來它需要更多的工作來實現過濾排序等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM