プログレッシブエンハンスメントの大ファンとして、私はブラウザの機能をテストするためにModernizrを使用しています。Modernizrを使用してブラウザーのAJAX(具体的には、jQueryのAJAX関数)のサポートをテストするにはどうすればよいですか?
2843 次
3 に答える
8
これをテストするのにModernizerは必要ありません。jQueryには組み込みです。
if (jQuery.support.ajax) {
alert("Ajax is supported!");
}
$.ajax
サポートされていないときにjQueryが呼び出しを処理する方法は正確にはわかりませんが。サイレントに失敗するか、エラーコールバックをトリガーします。それがあなたにとって重要であるならば、あなたはそれをテストするべきです。
于 2012-10-18T18:31:22.693 に答える
3
価値があるので、AJAXのテストを追加するためにModernizrに問題#734を追加し、テストを開発し、テストするためのJSFiddleを作成しました...そして、プルリクエスト(問題#735)を開始しましたModernizrを維持している立派な人々。
関連するJS:
Modernizr.addTest('ajax', function() {
var xhr = new XMLHttpRequest();
return !!('onreadystatechange' in xhr);
});
于 2012-10-23T15:24:22.670 に答える
1
質問に関連する場合と関連しない場合がありますが、jqueryajaxの例外処理を使用できます。Kevin B.の質問に例外処理なしで答えると、サイレントに失敗します(コールバックは何も返しません)。したがって、何かを表示したい場合は、例外処理を使用してください。
簡単な例:
$.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);
}
});
于 2012-10-18T19:44:59.613 に答える