Adaptable presentation

With the importance of the internet in modern society, web applications have been required to adapt to a proliferation of ways that users access the web. Smaller form-factor mobile experiences have eclipsed desktop usage but larger presentation formats remain valid to deliver complex application requirements. Dojo provides a variety of solutions to help developers create applications that adapt to their users' access needs.

When pre-rendered content is needed (such as when developing static sites), Dojo applications can make use of build-time rendering (BTR) where some or all of the application structure is computed at build time rather than at runtime within a user's browser. Dojo provides a flexible block-based BTR solution that can run Node.js scripts when building an application, allowing for features such as reading files to obtain content. Dojo's BTR solution also allows for progressive hydration to support dynamic behavior on top of pre-rendered content. Developers can make use of BTR in this way to optimize the initial set of content and application assets that are delivered to users when they initially access an application.

Progressive web applications (PWAs) can help deliver experiences that are closer to native device apps, while still benefiting from features such as portability and ease of delivery that the web enables. Dojo helps with the creation of PWAs through simple build configuration that enables developers to add features such as offline usage, background data syncing and push notifications to their applications.

Dojo allows developers to make use of several upcoming web APIs in a consistent manner across all delivery targets through its middleware system. The intersection observer API can be used to more efficiently control rendering of only the portions of an application that are visible to a user, such as supporting endless scroll lists. The resize observer API can enable applications to dynamically respond to changes in viewport size, allowing for interfaces to adapt gradually between the full range of resolutions across desktop and mobile viewports.