2010-06-14 8 views
0

Je travaille avec Extjs 2.2.1 avec Alfresco 3.2 enterprise.Comment recharger les paramètres d'appel Ajax sans recharger la page Web

Je voudrais mettre à jour le ticket qui gère l'authentification sur le serveur alfresco sur les composants qui ont été chargés lors de la connexion. Ce ticket expire après un temps déterminé et c'est pourquoi je devrai mettre à jour le ticket.

options qui ne paraissent viables pour moi (mais s'il vous plaît laissez-moi savoir si je me trompe):

  1. Recharger les composants pour recharger les paramètres d'appel - Je ne peux pas le faire, car il remet à zéro tout ce sur quoi l'utilisateur travaillait auparavant (c'est-à-dire que l'arborescence est rechargée, les filtres de grille sont réinitialisés, etc.). La page Web réelle ne se recharge jamais car tout utilise les appels ajax pour mettre à jour les éléments de la page.

  2. Créer une variable globale qui stocke le ticket et l'attache en tant que paramètre d'appel à tout appel ajax - Tous les composants chargés lors de la connexion utiliseront toujours le ticket d'origine pour effectuer des appels au serveur.

Répondre

0

Essayez quelque chose comme ça

Ext.onReady(function() { 
    var token = new Ext.util.MixedCollection(); 
    token.add('id', 'THE_TOKEN_ID'); 
    Ext.ComponentMgr.register('token', token); 
}); 

Fixer les écouteurs d'événement à l'MixedCollection qui met à jour les composants qui se soucient du jeton.

// now you need all the event listeners 
var token = Ext.getCmp('token'); 
var component = Ext.getCmp('some_component_that_needs_ajax'); 
token.on('replace', function(key, value, original) { 
    if(key == 'id') { 
    component.params.token_id = value; // update the new value 
    } 
}); 

Chaque fois que le jeton a besoin de mettre à jour, faire

var token = Ext.getCmp('token'); 
token.replace('id', 'THE_NEW_TOKEN_ID'); 

Qu'est-ce qui se passe ici est:

  1. Vous créez un MixedCollection pour contenir des informations sur votre jeton.
  2. Tous les composants qui doivent être mis à jour lorsqu'il existe un nouveau jeton doivent être mis à jour dans le gestionnaire pour l'écouteur replace pour le jeton MixedCollection.
  3. Lorsque vous obtenez un nouvel ID de jeton, utilisez MixedCollection.replace pour mettre à jour la clé id avec le nouvel ID de jeton.
  4. Le gestionnaire replace se déclenche et les écouteurs mettent à jour tous les composants dépendants.
Questions connexes