Polling

Refresh page data on an interval for live updates.

See also

Official Inertia.js docs: Polling

What Is Polling?

Polling lets the client automatically refresh data on a timer. This is useful for dashboards, notifications, and live metrics without WebSockets.

Frontend Usage

import { usePoll } from "@inertiajs/react";

export default function Dashboard() {
  usePoll(
    5000,
    { only: ["stats"] },
    { keepAlive: true }
  );

  return <StatsPanel />;
}
<script setup lang="ts">
import { usePoll } from "@inertiajs/vue3";

usePoll(5000, { only: ["stats"] }, { keepAlive: true });
</script>

<template>
  <StatsPanel />
</template>

Manual Start/Stop

Disable auto-start and control polling manually:

import { usePoll } from "@inertiajs/react";

const poll = usePoll(2000, {}, { autoStart: false });

poll.start();
poll.stop();
 <script setup lang="ts">
 import { usePoll } from "@inertiajs/vue3";

 const poll = usePoll(2000, {}, { autoStart: false });

poll.start();
poll.stop();
</script>

Auto-Throttling

Polling is throttled when the page is in the background to reduce resource usage. Set keepAlive to true to disable background throttling.

Backend Considerations

No server changes are required. Consider using partial reloads (only or except) to keep polling responses small.

See Also