Skip to content

src_url_equal is slow when dealing with large base64 encoded images #8164

Closed
@EmilTholin

Description

@EmilTholin

Describe the bug

This discussion on Discord made us realize that trying to remove an element from an each block containing images with large base64 encoded images takes a long time.

This is because the src_url_equal check in the generated code is slow for these types of images.

if (dirty & /*images*/ 1 && !src_url_equal(img.src, img_src_value = /*image*/ ctx[3].src)) {
	attr(img, "src", img_src_value);
}

let src_url_equal_anchor;
export function src_url_equal(element_src, url) {
if (!src_url_equal_anchor) {
src_url_equal_anchor = document.createElement('a');
}
src_url_equal_anchor.href = url;
return element_src === src_url_equal_anchor.href;
}

Reproduction

REPL

Logs

No response

System Info

REPL, v3.55.0

Severity

annoyance

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions