Как я могу использовать Modernizr для проверки браузера на поддержку AJAX?

Как большой поклонник Progressive-Enhancement, я использую Modernizr для тестирования возможностей браузера. Как я могу использовать Modernizr для проверки поддержки AJAX в браузере (в частности, функций AJAX в jQuery)?

3 ответа

Решение

Для чего это стоит, я добавил проблему #734 в Modernizr, чтобы добавить тест для AJAX, разработал тест, создал JSFiddle для тестирования... и инициировал запрос на удаление (проблема № 735) обратно к прекрасные люди, которые поддерживают Modernizr.

Соответствующий JS:

Modernizr.addTest('ajax', function() {
    var xhr = new XMLHttpRequest();
    return !!('onreadystatechange' in xhr);
});

Вам не нужен Модернизатор, чтобы проверить это, в jQuery это встроено.

if (jQuery.support.ajax) {
    alert("Ajax is supported!");
}

Хотя я не уверен, как именно JQuery обрабатывает $.ajax звонки, когда это не поддерживается. Это либо молча завершится ошибкой, либо вызовет ответный вызов ошибки. Если это важно для вас, вы должны проверить это.

Может быть или не иметь отношения к вопросу, но вы можете использовать обработку исключений jquery ajax. Чтобы ответить на вопрос о Кевине Б. без каких-либо исключений, он просто молча потерпит неудачу (обратный вызов просто ничего не вернет). Поэтому, если вы хотите, чтобы это показывало что-либо, используйте обработку исключений.

Краткий пример:

$.ajax({
type: "POST",
url: "ajax_page.php",
success: function(data, status, xhr) {
// perform operations on success
alert('Success');
},
error: function(xhr, status, error) {
// perform operations on error
alert(xhr.responseText);
}
});
Другие вопросы по тегам