I. Démarche

  1. Définissez l'URL de la manière suivante : /echo/json/.
  2. Si vous faites une action de lecture (par exemple Model.load), vous devez positionner proxy.actionMethods.read à la valeur POST.
  3. Ajoutez "json" en tant que paramètre extraParam et passez-lui la chaîne json que vous désirez récupérer.
  4. Vous pouvez également ajouter un délai (delay) en tant que paramètre extraParam.

II. Simuler une requête AJAX

Voici une petite fonction pour vous aider à simuler une requête AJAX :

 
Sélectionnez
function sim(proxy, data, delay){
 
  if(typeof data !== 'string'){
    data = Ext.JSON.encode(data);
  }
 
  proxy.url = '/echo/json/';
  proxy.actionMethods.read = "POST";
  proxy.extraParams.json = data;
  proxy.extraParams.delay= typeof delay == 'undefined' ? 0 : delay;
}
 
//usage:
 
sim(MyModel.proxy, {name:"neil"}, 2);
 
MyModel.load(1, {
  callback: function(record, operation){ console.log( record.get('name'); ) }
});

III. Exemple

Voici un exemple : http://jsfiddle.net/el_chief/9ksWE/Exemple JsFiddle

 
Sélectionnez
/* 
C'est une fonction qui simule une requête AJAX dans JsFiddle.
Elle est compatible avec la version Sencha Touch 2.01.
 */
function sim(proxy, data, delay) {
    if (typeof data !== 'string') {
        data = Ext.JSON.encode(data);
    }
 
    proxy.setUrl('/echo/json/');
    proxy.setExtraParams({
        json:data,
        delay: typeof delay === 'undefined' ? 0 : delay
    });
    proxy.setActionMethods({read:'POST'});
}

IV. Remerciements

Cet article a été publié avec l'aimable autorisation de Neil McGuigan. L'article original peut être lu sur le blog ExtJS TutorialsExtJS Tutorials : How to simulate AJAX requests in JSFiddleHow to simulate AJAX requests in JSFiddle.
Je remercie également ClaudeLELOUP pour sa relecture attentive.