Skip to content

Instantly share code, notes, and snippets.

@texodus
Created October 30, 2025 14:06
Show Gist options
  • Select an option

  • Save texodus/abd1048630adaf9742d6639142373c79 to your computer and use it in GitHub Desktop.

Select an option

Save texodus/abd1048630adaf9742d6639142373c79 to your computer and use it in GitHub Desktop.
Perspective Scroll FPS
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no" />
<link rel="preload" href="https://cdn.jsdelivr.net/npm/@perspective-dev/server/dist/wasm/perspective-server.wasm" as="fetch" type="application/wasm" crossorigin="anonymous" />
<link rel="preload" href="https://cdn.jsdelivr.net/npm/@perspective-dev/viewer/dist/wasm/perspective-viewer.wasm" as="fetch" type="application/wasm" crossorigin="anonymous" />
<link rel="preload" href="https://cdn.jsdelivr.net/npm/superstore-arrow/superstore.lz4.arrow" as="fetch" type="arraybuffer" crossorigin="anonymous" />
<link rel="stylesheet" crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/@perspective-dev/viewer/dist/css/themes.css" />
<script type="module">
import "https://cdn.jsdelivr.net/npm/@perspective-dev/viewer/dist/cdn/perspective-viewer.js";
import "https://cdn.jsdelivr.net/npm/@perspective-dev/viewer-datagrid/dist/cdn/perspective-viewer-datagrid.js";
import "https://cdn.jsdelivr.net/npm/@perspective-dev/viewer-d3fc/dist/cdn/perspective-viewer-d3fc.js";
import perspective from "https://cdn.jsdelivr.net/npm/@perspective-dev/client/dist/cdn/perspective.js";
const worker = await perspective.worker();
const resp = await fetch("https://cdn.jsdelivr.net/npm/superstore-arrow/superstore.lz4.arrow");
const arrow = await resp.arrayBuffer();
const viewer = document.getElementsByTagName("perspective-viewer")[0];
const table = worker.table(arrow);
await viewer.load(table);
await viewer.restore({ settings: true, plugin_config: { edit_mode: "EDIT" } });
const datagrid = document.querySelector("perspective-viewer-datagrid").shadowRoot.querySelector("regular-table");
(async function scroll() {
datagrid.scrollTop += 10;
if (datagrid.scrollTop % 500 === 0) {
console.log(await datagrid.getDrawFPS());
}
setTimeout(scroll, 10);
})();
</script>
<style>
perspective-viewer {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
</style>
</head>
<body>
<perspective-viewer></perspective-viewer>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment