data-streamdown is not a standardized HTML attribute; it appears to be a custom data- attribute used by specific JavaScript libraries or applications to pass metadata from HTML to script. Conventions and uses vary, but common patterns include:
- Purpose
- Signal a behavior or configuration to client-side code (e.g., enable streaming or progressive loading “down” a DOM tree or list).
- Mark an element as a target for a streaming update pipeline (server-sent events, websockets, or chunked responses).
- Store a small state or identifier consumed by scripts.
- Typical attribute shape
- Boolean flag: data-streamdown (present/absent) or data-streamdown=“true”/“false”.
- Identifier or mode: data-streamdown=“comments” or data-streamdown=“infinite” to indicate which stream or strategy to use.
- JSON/string options: data-streamdown=‘{“batch”:50,“threshold”:200}’ (scripts must parse it).
- How scripts use it
- Querying: document.querySelectorAll(‘[data-streamdown]’) or by name.
- Reading: element.dataset.streamdown returns the string value (JSON must be JSON.parsed).
- Behavior: attach event listeners, start fetching more data when user scrolls, subscribe to a websocket channel, or apply progressive hydration.
- Implementation considerations
- Keep values simple (avoid large JSON blobs in attributes).
- Validate/parsing: scripts should defensively parse dataset values.
- Accessibility: ensure progressive updates are communicated to assistive tech (aria-live, focus management).
- Security: don’t place secrets in data- attributes; sanitize if injecting into DOM.
- Performance: prefer IDs or small tokens over heavy inline data; consider using JS-initialized configs for complex settings.
- Example usages
- Infinite scroll trigger:
JS reads dataset.streamdown and dataset.streamdownThreshold to start loading when near viewport.
- Server-sent updates:
JS opens an EventSource for that stream-id and appends incoming items.
- Infinite scroll trigger:
If you tell me which project or library uses data-streamdown, I can give a concrete example for that context.
Leave a Reply