Well there's one source of your delay - jquery!!!
You don't need jquery (and its overheads) to create the select lists at all.
You simply get php tp query the database for the options data, then loop through the result set, in php, to create the html for the select and its options, still on the server, before sending the html including the html for the select and the 300+ options back to the user's browser.
If you get rid of the jquery "layer" in the creation of select and its options, I'm sure your page will load much faster.