Closed jeremystretch closed 6 months ago
Marking this as blocked by #14735 for now.
I'm planning a phased approach to implementing HTMX.
hx-select
to swap in only the relevant HTML content from an HTTP response This approach should allow us to implement HTMX application-wide with a relatively light touch, while retaining full HTML rendering by default for backward compatibility.
Here's a great, quick intro to HTMX for the uninitiated: https://youtu.be/r-GSGH2RxJs
NetBox version
v3.7.0
Feature type
New functionality
Proposed functionality
NetBox has employed HTMX in several areas of the UI for a while now, to improve responsiveness. These areas include:
This proposal seeks to extend the use of HTMX across the entire application, leveraging it for nearly all views. For instance, clicking a navigation menu link would replace only the main portion of the page with new content, avoiding a full page refresh.
Use case
HTMX strikes a very natural balance between traditional full-page rendering and reactive SPA frameworks, returning only the portion of HTML content necessary to update the page. This provides a much more seamless user experience, and can significantly reduce page load times. These gains can be achieved with relatively little backend work, leveraging existing HTML templates.
Database changes
None
External dependencies
We'll use the
django-htmx
package per #14735.