这是indexloc提供的服务,不要输入任何密码
Skip to content

Not compatible with SSR #17

@theKashey

Description

@theKashey

Well, this library is not SSR compatible, and there are only two reasons why not:

  • README tells to add it to the head or bundle, while it has to be inlined just after body tag
  • it uses onLoad/onError handlers which are async

Let's make it work right!

Long story short - here is working sandbox - https://codesandbox.io/s/crazy-ganguly-hmhe8

  • it inlines base64 img before the body to tell the browser about it. The img is invisible.
  • it "checks" img synchronously after creating, and it does work! (only with a real img tag, preload does not help).
  • so it sets class to the body here and now, and the following HTML would use webp
  • as long as dataURI inlined in the same document - it does not affect gzip size.

Tested

In Chrome(webp ✅), FireFox(webp ✅), and Safari(no webp, as expected)

Outcome

This library becomes SSR friendly!

Happy to open PR with a more compact version of the sandboxed example, however, the main changes are expected at the README level

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions