You should create one server function that searches for the items in the database and builds a list of dictionaries (not a list of rows), then return the full list to the client. By returning all the options at once the time will be the same (one round trip), regardless of the number of items.
Here are a few more suggestions: Suggestions to optimize performance
If you need more details, please post a clone link, so we can see what you are trying to do.