AJAX - Prise en charge du navigateur

Tous les navigateurs disponibles ne prennent pas en charge AJAX. Voici une liste des principaux navigateurs prenant en charge AJAX.

  • Mozilla Firefox 1.0 et supérieur.
  • Netscape version 7.1 et supérieure.
  • Apple Safari 1.2 et supérieur.
  • Microsoft Internet Explorer 5 et supérieur.
  • Konqueror.
  • Opera 7.6 et supérieur.

Lorsque vous écrivez votre prochaine application, tenez compte des navigateurs qui ne prennent pas en charge AJAX.

NOTE - Quand nous disons qu'un navigateur ne supporte pas AJAX, cela signifie simplement que le navigateur ne supporte pas la création d'objet Javascript - objet XMLHttpRequest.

Écriture du code spécifique au navigateur

Le moyen le plus simple de rendre votre code source compatible avec un navigateur est d'utiliser des blocs try ... catch dans votre JavaScript.

<html>
   <body>
      <script language = "javascript" type = "text/javascript">
         <!-- 
         //Browser Support Code
         function ajaxFunction() {
            var ajaxRequest;  // The variable that makes Ajax possible!

            try {
               // Opera 8.0+, Firefox, Safari 
               ajaxRequest = new XMLHttpRequest();
            } catch (e) {

               // Internet Explorer Browsers
               try {
                  ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
               } catch (e) {
                  
                  try {
                     ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
                  } catch (e) {

                     // Something went wrong
                     alert("Your browser broke!");
                     return false;
                  }
               }
            }
         }
         //-->
      </script>
      
      <form name = 'myForm'>
         Name: <input type = 'text' name = 'username' /> <br />
         Time: <input type = 'text' name = 'time' />
      </form>
      
   </body>
</html>

Dans le code JavaScript ci-dessus, nous essayons trois fois de créer notre objet XMLHttpRequest. Notre première tentative -

  • ajaxRequest = new XMLHttpRequest ();

C'est pour les navigateurs Opera 8.0+, Firefox et Safari. Si cela échoue, nous essayons deux fois de plus de créer l'objet correct pour un navigateur Internet Explorer avec -

  • ajaxRequest = nouvel ActiveXObject ("Msxml2.XMLHTTP");
  • ajaxRequest = nouvel ActiveXObject ("Microsoft.XMLHTTP");

Si cela ne fonctionne pas, nous pouvons utiliser un navigateur très obsolète qui ne prend pas en charge XMLHttpRequest, ce qui signifie également qu'il ne prend pas en charge AJAX.

Très probablement, notre variable ajaxRequest sera désormais définie sur la norme XMLHttpRequest utilisée par le navigateur et nous pouvons commencer à envoyer des données au serveur. Le flux de travail AJAX par étapes est expliqué dans le chapitre suivant.