Skip to content

Slow rendering  #353

@djordjedjukic

Description

@djordjedjukic

Hi,

I have an issue with slow rendering when the page has more elements.
I am creating a clone of one website which is working nicely.

So I am rendering 200 cards that represent Lego set info. Also when I am filling the dropdown with 450 elements, the page becomes unresponsive. I will share the gif of what that looks like and the code.

I don't know if that is an expected behavior of bolero/blazor or if I am doing something wrong?

This example is without dropdown because it can't render dropdown at all.

ScreenRecording2024-05-01at14 13 31-ezgif com-video-to-gif-converter

type Page = Template<"Pages/Sets/data.html">

let showSet (set: Set) =
    Page
        .SetData()
        .SetNumber(set.Number)
        .SetName(set.Name)
        .SetImageUrl(set.ImageUrl)
        .ThemeName(set.ThemeName)
        .Year(set.Year.ToString())
        .NumberOfParts(set.NumberOfParts.ToString())
        .Elt()
        
        let listSets model dispatch =
    let toggleDropdown _ = dispatch ToggleDropdown
    let triggerSearch dispatch =
        fun (e: ChangeEventArgs) ->
            let value = e.Value.ToString()
            dispatch (SearchSets value)

    let dropdownVisibilityClass = if model.IsDropdownOpen then "" else "hidden"

    Page()
        (*.DropdownOptions(
            forEach model.Themes <| renderOption
                
        )*)
        .TriggerSearch(triggerSearch dispatch)
        .ToggleDropdown(toggleDropdown)
        .DropdownVisible(dropdownVisibilityClass)
        .Rows(
            cond model.Sets
            <| function
                | None -> empty ()
                | Some sets -> forEach sets <| showSet
        )
        .Elt()

let view model dispatch = listSets model dispatch

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