Maison >interface Web >js tutoriel >Guide d'utilisation de la méthode jQuery Ajax()_jquery

Guide d'utilisation de la méthode jQuery Ajax()_jquery

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBoriginal
2016-05-16 16:30:541561parcourir

jQuery fournit des fonctions de sélection simples et puissantes, et offre également un bon support pour les opérations Ajax. En termes d'Ajax, en plus de fournir la méthode jQuery.ajax() sous-jacente, jQuery fournit également les méthodes simples suivantes :

(1) jQuery.get(url, [data], [callback], [type])

(2) jQuery.getJSON(url, [data], [callback])

(3) jQuery.getScript(url, [callback])

(4) jQuery.post(url, [data], [callback], [type])

Étant donné que jQuery.ajax() est relativement puissant et possède de nombreux paramètres configurables, nous allons maintenant résumer principalement les précautions à prendre pour cette méthode.

1. jQuery.ajax() est demandé de manière asynchrone par défaut. Si une synchronisation est requise, utilisez le paramètre async sur false. Parce que certaines applications doivent demander des données de manière synchrone. Par exemple, dans certaines applications interactives Flash et JS, la demande d'une fonction JS nécessite un retour immédiat des données. À l’heure actuelle, les appels Ajax synchrones doivent être utilisés.

2. Si Ajax est une requête Get, les données renvoyées seront généralement mises en cache par le navigateur. Si vous ne souhaitez pas être mises en cache, vous pouvez définir le paramètre cache sur false ou envoyer la requête avec un horodatage. que le navigateur pensera qu'il s'agit d'une nouvelle demande lors du rechargement des données depuis le serveur. Bien entendu, si la requête est envoyée par POST, elle ne sera pas mise en cache.

3. DataType : le type de données qui devrait être renvoyé par le serveur. S'il n'est pas spécifié, jQuery renverra automatiquement ResponseXML ou ResponseText en fonction des informations MIME du paquet HTTP et les transmettra comme paramètre de fonction de rappel. Valeurs disponibles :

.

(1) "xml" : renvoie un document XML pouvant être traité avec jQuery.

(2) "html" : renvoie les informations HTML en texte brut ; la balise de script incluse sera exécutée une fois insérée dans le dom.

(3) "script" : renvoie le code JavaScript en texte brut. Les résultats ne sont pas automatiquement mis en cache. Sauf si le paramètre "cache" est défini. '''Remarque :''''Lorsque vous effectuez des requêtes à distance (pas sous le même domaine), toutes les requêtes POST seront converties en requêtes GET. (Car la balise du script DOM sera utilisée pour le chargement)

(4) "json" : renvoie les données JSON.

(5) "jsonp" : format JSONP. Lors de l'appel d'une fonction au format JSONP, telle que "myurl?callback=?", jQuery remplacera automatiquement ? par le nom de fonction correct pour exécuter la fonction de rappel.

(6) "text": Renvoie une chaîne de texte brut

Parmi eux, les paramètres "script" et "json" peuvent résoudre le problème inter-domaines d'Ajax.

4. Si le serveur renvoie une chaîne ou une valeur numérique, utilisez simplement un appel ajax ordinaire.

Si le serveur renvoie un objet JSON, il est préférable d'utiliser jQuery.getJSON ou de définir dataType=json. Étant donné que le navigateur prend du temps pour analyser l'objet JSON, le renvoi direct de l'objet JSON permet de gagner du temps d'analyse et d'éviter les erreurs dans lesquelles le serveur renvoie clairement des données mais que le navigateur ne peut pas les obtenir.

5. Les appels Ajax prennent du temps, donc généralement tous les codes de traitement après les appels Ajax sont placés dans la méthode de rappel. Cette approche ne peut pas être utilisée :

Copier le code Le code est le suivant :

fonction getMyPrizeList(){
    si(isNotEmpty(uid)){
        var obj=nouvel Objet();
        essayez{
          jQuery.ajax({type:"GET",url:"someurl",async:false,cache:false,dataType:"script",scriptCharset:"gbk",success:function(json){
                     obj=json;
                  >
              });
           }attraper(e){}
           obj=eval("("obj ")");
           //alerte(obj);
           var str="";
           pour (var i dans obj)
           {
               str ='' '' prizearray[obj[i].prizeno] ''
               str ='' 'CD-KEY:' obj[i].cdkey ''
               str ='' '期限:' obj[i].expiratedate '前' '';
           >
           jQuery("#prizelist").append(str);
        >
>

而必须这样处理:即将处理代码放到success函数里面!

复制代码 代码如下 :

fonction getMyPrizeList(){
    si(isNotEmpty(uid)){
        var obj=nouveau tableau();
        essayez{
                  jQuery.ajax({type:"GET",url:"someurl",
                               cache : faux,
                               Type de données : "script",
                               scriptCharset : "gbk",
                               succès:fonction(json){
                                 essayez{
                                      obj=résultat ; 
                                }attraper(e){}
                                jQuery("#prizelist").html("");
                                var str="";
                                pour(var i=0;i                                     str ='' prizearray[obj[i].prizeno] '';
                                    str ='CD-KEY:' obj[i].cdkey '';
                                    str ='期限:' obj[i].expiratedate '前';
                                >
                                jQuery("#prizelist").append(str);                  
                               >
                   });
           }attraper(e){}
        >
>

6. jQuery.getJSON实例:

复制代码 代码如下 :

//Fonction interne pour charger les détails du débiteur et définir les valeurs
Fonction innerShowDetail() {
// Récupère les données au format JSON
         $.getJSON('load.do',{id : userId}, function(json) {
// Définir la valeur
en fonction de la clé pour (clé en json) {
Si(clé == 'id'){
                           $('#detailDiv #' key).val(json[key]);
                  } autre {
Si(json[clé] == ''){
                                                                                                                                                                                                                                                                                        // Aucune valeur définie sur vide
                                $('#detailDiv #' key).html(' ');
                              } else if(key == 'sex'){
                         $('#detailDiv #' key).html(json[key] == '0' ? 'Female' : 'Male');
                            } else if(key == 'group'){
Si(json[clé] != null) {
$('#detailDiv #' key).html(json[key]['groupName']);
                    }
                     } autre {
                                $('#detailDiv #' key).html(json[key]);
                 }
              }
           }
//Définissez le titre et le contenu de la boîte de dialogue
               $('#detailDiv').removeAttr('class');
Dialog.setTitle('View person[' json['userName'] '] détails');
Dialog.setContent($('#detailDiv').html());
});
>
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn