Обнаружить поддержку браузера для междоменного XMLHttpRequests?

Интерфейсы имеют много полезных ситуаций. Когда необходимо добавить определенное поведение к классу, который может быть найден через большое разнообразие классов, это - идеальное время для интерфейса. Хороший пример эти IDisposable интерфейс - у Вас есть некоторый ресурс, который, когда Вы сделаны, должен уйти своевременно. Действительно ли это - соединение с базой данных? Это - некоторый дескриптор окна? Не имеет значения.

Другой пример был бы, когда Вы действительно не делаете , знают, как он должен быть реализован, такие как интерфейс к объекту, который еще не существует. Возможно, объект должен быть предоставлен клиентом Вашей библиотеки или должен быть реализован совершенно другим модулем не под Вашим управлением. Можно в основном разработать контракт для методов, доступных на классе.

Тем не менее я только использую их, где это необходимо. Если я могу сделать это с регулярным классом, или если это будет что-то внутреннее конкретному объекту, то я сделаю это классом. Существуют некоторые преимущества для использования Интерфейсов для каждого класса, как другие сказали, но это - так много дополнительных издержек, что я не вижу достойную чистую прибыль на нем. Большую часть времени я разработал свои структуры класса так, чтобы они были плоскими и широкими с как можно меньшим количеством зависимостей.

, Таким образом: Если Вам потребовали общей функциональности, это реализовано существенно по-другому, Интерфейс, в чем Вы нуждаетесь.

43
задан David Wolever 29 October 2009 в 03:46
поделиться

3 ответа

Согласно http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/ вы должны иметь возможность использовать:

if ('withCredentials' in new XMLHttpRequest()) {
    /* supports cross-domain requests */
}

(Примечание: на этой странице есть комментарий, что Chrome 2 не проходит этот тест [хотя он поддерживает междоменные запросы]. Я тестировал Chrome 3, и тест теперь проходит.)

Имейте в виду, что только потому, что браузер может поддерживать междоменный API не означает, что целевой сервер разрешит выполнение запроса.

35
ответ дан 26 November 2019 в 22:37
поделиться

IE8 также имеет объект XDomainRequest, который может быть использован для получения RSS в виде текста, который впоследствии может быть разобран в DOM.

1
ответ дан 26 November 2019 в 22:37
поделиться

Возможно, вы захотите взглянуть на EasyXDM, которая устраняет кросс-браузерные причуды и предоставляет простой в использовании API для общения в клиентском скрипте между различными доменами, используя наилучший доступный механизм для данного браузера (например, postMessage, если он доступен, другие механизмы, если нет).

Очевидно, что эта библиотека решила проблему определения возможностей браузера, так что вы можете воспользоваться их опытом. :-)

.
4
ответ дан 26 November 2019 в 22:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: