Что бы я сделал, это:
Есть один пустой элемент в списке.Когда выпадающий список получает фокус, вы меняете этот элемент на «Загрузка» или что-то в этом роде.Затем вы делаете требуемый вызов ajax.
Как только он завершится, вы освобождаете событие фокуса от выпадающего списка, чтобы не перезагружать последующие события фокуса.
Похоже, этого не будетслишком сложно сделать что-то подобное.
Я посмотрю, смогу ли я что-нибудь подсказать на jsfiddle, если вам нужна помощь.
РЕДАКТИРОВАТЬ: Кстати, на ваш вопрос о расширителях я неничего не знаю об этом.
РЕДАКТИРОВАТЬ 2: Вы можете попробовать что-то вроде этого:
$(document).ready(
function()
{
$("#theSelect").bind("focus", function()
{
$("option:first", this).html("Loading...");
setTimeout(AjaxSuccessCall, 2000);
});
});
function AjaxSuccessCall(data)
{
var select = $("#theSelect");
select.unbind("focus");
select.children("option").remove();
}