Je tente le coup question sur Extjs

08/08/08 à 09:51 :: pbouige

Bonjour,

Après avoir lu la doc sur etxjs.com, je reste bloqué sur un problème probablement
simple. J'ai fait un script pour lequel je charge des données 'en cross-domaine'
grâce à ScriptTagProxy.... tout ceci fonctionne très bien.... Sauf que je souhaite
interroger 'n' fois le serveur car les données en JSON changent à chaque appel.

Comment faire pour relancer plusieurs fois l'interrogation pour mettre à jour
sur une page les données du serveur ?

Merci

voila mon code (inspiré de code existant) j'aimerais que task2 puisse interroger
de nouveau le serveur et affiche les données :

[code]
Ext.onReady( function(){

var my_record = Ext.data.Record.create([ // utiliser ici 'create' au lieu de 'new'
{name: 'title', mapping: 'topic_title'}, // liste d'un Record
{name: 'topicId', mapping: 'topic_id'},
{name: 'author', mapping: 'author'},
{name: 'lastPost', mapping: 'post_time', type: 'date', dateFormat: 'timestamp'},
{name: 'excerpt', mapping: 'post_text'} // fin liste d'un Record
]);


var my_reader = new Ext.data.JsonReader(
{ // Config Options
root: 'topics',
totalProperty: 'totalCount',
id: 'post_id'
}, // FIN Config Options
my_record // RECORD
); // FIN data.JsonReader


var my_result = new Ext.XTemplate(
'<tpl for=".">',
'<div class="search-item">',
'<h3>{lastPost[content]ate("M j, Y"[clin d'oeil]}<br/>&nbsp;&nbsp;&nbsp;by {author}<span>{title}',
'<'+'/span>',
'<'+'/h3>',
'{excerpt}<'+'hr/>',
'<'+'/div>',
'<'+'/tpl>'
);


// extjs.com/forum/topics-remote.php
// ou
// localhost:6060/Projets/depot_json

var my_proxy = new Ext.data.ScriptTagProxy({
url: 'http://localhost:6060/Projets/depot_json',
}); // FIN ScriptTagProxy

var my_store = new Ext.data.Store(
{
proxy: my_proxy,
reader: my_reader
//autoLoad: true
}
); // FIN data.Store


// ==========================================================================


my_store.load(); // remplace "autoLoad: true"

var view_1 = new Ext.DataView({
id: 'view_1', // identificateur unique pour le DataView
store: my_store,
tpl: my_result,
autoHeight: true //renderTo: 'info_data_1'
});

// ==========================================================================

var panel_1 = new Ext.Panel({
id: 'panel_1', // identificateur unique pour le Panel
width: 535, // largeur du Panel
autoHeight: true, // gere la hauteur en fonction des données
collapsible: false, // ajoute un bouton pour fermer dans le titre
frame: true, // ajoute un fond au panel
title: 'premier panel', // ajoute un titre et le bouton collapse
draggable: true, // peut-être déplace à la souris
items: view_1 // l'objet à placer
});

panel_1.render(document.body, 'info_data_1')


// ==========================================================================


var my_func_1 = function(){
panel_1.show();
return new Date().format('g:i[confus] A')
}

// Start a simple clock task that updates a div once per second
var task_1 = {
run: function(){
Ext.fly('clock').update( my_func_1() );
},
interval: 1000 //1 seconde
}


var my_func_2 = function(){
panel_1.hide();
return
}

var task_2 = {
run: function(){
Ext.fly('info_data_1').update( my_func_2() );
},
interval: 10000 //5 secondes
}

var runner = new Ext.util.TaskRunner();
runner.start(task_1); // premiere tache
runner.start(task_2); // deuxième tache
// FIN de TaskRunner

}); // FIN DE LA BOUCLE Ext.onReady()

[/code]

Commentaires

promotion

Les femmes se défendent en attaquant, et leurs attaques sont faites d'étranges et brusques capitulations.

Osca Wilde

Tribune

  • 17:04 Bon anniversaire à Madame (un peu en retard) :)
  • 15:32 19:48 :
  • 19:02 plop
  • 15:04 trop classe
  • 21:56 félicitations Lapin ! j'espère que tu as fété ça au champagne ;)
  • 20:51 URL
  • 20:50 salut lapin je suis tout content ce soir : URL premier lien première page !!
  • 17:56 jg
  • 20:18 Yes, woohoo !! des centaines d'heures de travail derrière ce chiffre :p et il en reste encore autant... 800 nouveaux fichiers non traduits ! mais on va y arriver :)
  • 19:48 Manuel PHP français la traduction de près de 100% nouveau ... Woohoo! :)