A more performant updateOriginalInput by risadams · Pull Request #1895 · selectize/selectize.js

and others added 3 commits

November 4, 2022 05:54
Previously, on every call to updateOriginalInput(), a brand new array of
options for every value in selectize.items would be created and the
entire HTML string would replace all children of the raw input source.

When doing something like

selectize.addItems(_.keys(selectize.options));

for a few hundred options, this becomes very sluggish.

This takes a smarter approach, only removing and adding individual
options from the input source as necessary.

The bottleneck is the repeated use of jQuery's html() method with large
DOM updates. For ~300 options this was originally taking 30154ms in
appendChild. Now it spends only 330.9ms.

@risadams risadams deleted the performance/faster-updateOriginalInput branch

November 4, 2022 10:21