Skip to content

Commit 597cc77

Browse files
committed
Add TODO: remove R-side first-page pre-rendering to avoid double payload
1 parent 1302cdf commit 597cc77

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

design/duckdb-wasm-engine/implementation-plan.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -555,6 +555,12 @@ This is deferred as a future enhancement. See the "Deferred / Future" section fo
555555
- [ ] Shiny `updateReactable(data = ...)` for DuckDB: Same issue as `setData()`. The DuckDB R server backend
556556
would need to re-register the new data, and DuckDB WASM would need re-import of Arrow IPC.
557557
- [ ] Parquet sidecar files: For very large data, write Parquet alongside HTML, query via HTTP range requests
558+
- [ ] Remove R-side first-page pre-rendering: When `pagination = FALSE`, the pre-rendered first page is the entire
559+
dataset, doubling the payload (full data in Arrow IPC/Parquet + full data as JSON). Even with pagination, the
560+
pre-rendered JSON page is redundant weight. Consider removing R-side pre-rendering entirely and instead showing
561+
a loading skeleton or CSS placeholder until DuckDB initializes and returns the first page. This avoids the
562+
flash-of-content problem (pre-rendered page briefly visible, then replaced by DuckDB results) and eliminates
563+
the duplicate payload. Needs a CSS/JS loading state that prevents layout shift.
558564
- [ ] Web Worker isolation: Move DuckDB queries to a dedicated Web Worker to guarantee UI thread never blocks
559565
- [ ] Custom SQL filter methods: Let users pass custom SQL WHERE clauses per column
560566
- [ ] Arrow IPC streaming: For Shiny, stream Arrow data incrementally instead of all-at-once

0 commit comments

Comments
 (0)