# Tile loading progress

**URL:** <https://community.cesium.com/t/tile-loading-progress/19496>\
**Category:** CesiumJS\
**Created:** [July 11, 2022, 10:10pm UTC](https://community.cesium.com/t/tile-loading-progress/19496 "2022-07-11T22:10:44Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Adrian\_Onsen](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/adrian_onsen/32/1987_2.png) [@Adrian\_Onsen](https://community.cesium.com/u/Adrian_Onsen)\
**Post date:** [July 11, 2022, 10:10pm UTC](https://community.cesium.com/t/tile-loading-progress/19496/1 "2022-07-11T22:10:44Z")

</div>

Does CesiumJS have a way to let the user know the progress of the tiles that are being loaded?

---

<div class="post-metadata">

**Author:** ![Marco13](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/marco13/32/2757_2.png) [@Marco13](https://community.cesium.com/u/Marco13)\
**Post date:** [July 14, 2022, 11:58am UTC](https://community.cesium.com/t/tile-loading-progress/19496/2 "2022-07-14T11:58:47Z")

</div>

There are different functions in the `Cesium3DTileset` that allow the user to track different sorts of loading information.

The following is just a rough summary. Refer to the documentation for details:

- [`readyPromise`](https://cesium.com/learn/cesiumjs/ref-doc/Cesium3DTileset.html#readyPromise): A promise that will be fulfilled when the `tileset.json` has been loaded
- [`initialTilesLoaded`](https://cesium.com/learn/cesiumjs/ref-doc/Cesium3DTileset.html#initialTilesLoaded) is called once, roughly, ~“after the window has been opened”, when the tiles for the initial view configuration have been loaded
- [`allTilesLoaded`](https://cesium.com/learn/cesiumjs/ref-doc/Cesium3DTileset.html#allTilesLoaded) is called whenever all tiles _for the current view_ have been loaded (i.e. when you move the camera, Cesium may load higher-resolution tiles for the new view, and when these have been loaded, this event is fired)
- [`loadProgress`](https://cesium.com/learn/cesiumjs/ref-doc/Cesium3DTileset.html#loadProgress) may be closest to what you are looking for: The event fires and provides some internal information about the number of tiles that are still being processed.

The `loadProgress` function provides information from which you can _derive_ the information that ‘all tiles are loaded’: When there are no more pending/processed requests, then ‘all tiles are loaded’, and this also causes `allTilesLoaded` to be fired.

Here is a Sandcastle that shows the output of all these functions. Note that when zooming and panning the view, new tiles may be loaded, and the progress is printed to the console.

> **[Cesium Sandcastle](https://sandcastle.cesium.com/#c=jVNha9swEP0rhxnFgaB0bJSRxmGl2yAQaOnC9sUf6liXREw+ZTrZJS3575MlJ6RpUvbJyPfuvXdPutIQO2gUPqGFDAif4BZZ1ZX4Ff6leVKG860hVyhCmyd9eMkJwKG1/s+9NY2SaIe7xtJi4fC3sVrOIiTt9XPa9q5zyqkMgk5pZHSvFePn07dZLKZBpbZ6zzwx9IBsaluiWFhT3bCHTWT6+fLL1dWBRscuvBG58f4qxSjcCilNe5CNo/3WiNEotFn6ITtNUAyhK09aqsC3Y1OknCp0QE5NIVGKQsrvDZKbKnbosznPP4nNcXAoLIIOFCd0Cv2+xqKm0ilD4MVOKN3o/1JpCz6apUXm9zRaAaqrOdq7xT2SVLR8wL81suP+YS1Y9oT+tbDH5NSZUwtIz/RDlmVwCRcX50gioCM6nvOHIl6hDBO2gmHEFmbR1ZbCYfsmnoB4nMaeocdGK0P48HLG5bYP672jQ9yR2e1jS77POae4VIJLn6hYW1X5F9BgCDvtbqEFdrBnY6qZOSwk/WTEbqNxHF0DfFXV2ljX7kQqxMBhtdZ+1Xgwr8s//k5L5l0Io8Fh60iqBpTMTiwzlLpg9pVFrfVP9Yx5Mh4NPP5Naxf0XYNWF5sWtvo47pIUQowG/ni60xmj54U9Yv4H)**
>
> The Cesium Sandcastle provides an interactive environment for testing Cesium code.
