> ## Documentation Index
> Fetch the complete documentation index at: https://docs.daily.co/llms.txt
> Use this file to discover all available pages before exploring further.

# load()

> Pre-loads the Daily JavaScript bundle to reduce join latency.

`load(properties?)`

<Badge color="green">{"✓"} Prebuilt</Badge> <Badge color="green">{"✓"} Custom</Badge>

Pre-loads the JavaScript bundle needed to join a call, giving you a head start before calling [`join()`](/reference/daily-js/instance-methods/join). This is purely an optimization — if you skip it, the bundle loads automatically on the first call to `preAuth()`, `startCamera()`, or `join()` and is often already cached.

Calling `load()` will update the meeting state and trigger events as follows:

* On success: [`loading`](/reference/daily-js/events/lifecycle-events#loading) → [`loaded`](/reference/daily-js/events/lifecycle-events#loaded)
* On failure: [`loading`](/reference/daily-js/events/lifecycle-events#loading) → one or more [`load-attempt-failed`](/reference/daily-js/events/lifecycle-events#load-attempt-failed) → [`error`](/reference/daily-js/events/error-events#error)

## Return value

Returns `Promise<void>`.

## Example

```javascript theme={null}
// Pre-load on page mount so join() is faster when the user clicks "Join"
call.on('loaded', () => console.log('Bundle ready'));
await call.load();
```

## See also

<CardGroup>
  <Card title="Methods" icon="code" iconType="solid">
    * [join()](/reference/daily-js/instance-methods/join)
    * [preAuth()](/reference/daily-js/instance-methods/pre-auth)
  </Card>

  <Card title="Events" icon="bolt" iconType="solid">
    * [loading](/reference/daily-js/events/lifecycle-events#loading)
    * [loaded](/reference/daily-js/events/lifecycle-events#loaded)
    * [load-attempt-failed](/reference/daily-js/events/lifecycle-events#load-attempt-failed)
  </Card>
</CardGroup>
