Легкий, просто используйте ГЛАВНЫЙ метод, вместо ДОБИРАЮТСЯ или POST:
function UrlExists(url, callback)
{
var http = new XMLHttpRequest();
http.open('HEAD', url);
http.onreadystatechange = function() {
if (this.readyState == this.DONE) {
callback(this.status != 404);
}
};
http.send();
}
Это - просто короткий пример, чтобы показать, как использовать ГЛАВНЫЙ метод. Производственный код, возможно, нуждается в более мелкомодульных обратных вызовах для различных состояний результата (успех, отказ, тайм-аут), и может использовать отличающийся обработчики событий (onload
, onerror
и ontimeout
, а не onreadystatechange
).
Я полагаю, что Hanselminutes Show № 181 обсуждает Mono.AddIns и то, что он приносит с собой.
Во время поиска в сети я также обнаружил это обсуждение , в котором подчеркивается различие в том, как эти две структуры в настоящее время обрабатывают кеширование каталога.
Я исследовал оба и решил использовать MEF, в основном потому, что он будет выпущен как часть .NET 4, поэтому автоматически будет больше поддержки, обсуждения и развития вокруг него. Кроме того, MEF, похоже, мог делать все, что мне было нужно, используя атрибуты прямо в коде, а Mono.AddIns требовал некоторых файлов метаданных, если я правильно помню.
EDIT : Если вы хотите увидеть результат Из моих усилий по использованию MEF для создания расширяемой среды приложений я открыл его исходный код и дал ему имя: SoapBox Core .
[ПРИМЕЧАНИЕ: я работаю над MonoDevelop, который использует Mono.Addins, но на прошлой неделе я подробно обсуждал различия между MEF и Mono.Addins с Гленном Блоком из команды MEF]
MEF основан на составлении кода, хотя базовые абстракции очень гибкие. Напротив, Mono.Addins основан на дереве метаданных, где вы можете включать данные / метаданные / код в расширенную схему вашего определения, так что расширения могут добавлять данные / метаданные, а также код.
Mono.Addins дает у вас есть готовая к работе система управления / упаковки / репозитория / обновлений. Для MEF на этом этапе вам придется создать свой собственный.
MEF имеет немного более низкий барьер для входа, и гораздо больше проектной работы было вложено в его удобство использования и лежащие в основе абстракции. Кроме того, это часть .NET 4, поэтому у меня будет гораздо большее сообщество пользователей, разрабатывающих с / для него.
На этом этапе, если вам нужно подключить данные / метаданные, а также код, и вам нужна готовая система упаковки, я бы порекомендовал Mono. Addins, иначе я бы рекомендовал MEF. В дальнейшем, вполне вероятно, что функции Mono.Addins будут реализованы в MEF, поэтому, вероятно, будет путь миграции в сторону MEF.