Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Flash Remoting

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    33

    Flash Remoting

    Non ho ben capito come funziona un "Pageable Record Set",
    cioe' una funzioanalita' di Flash Mx, ColdFusion Mx e Flash Remoting
    per la quale un record-set ottenuto tramite query viene inviato al client
    (Flash Mx) a blocchi (pagine) di n per volta.
    In pratica mi e' oscuro l'uso del metodo "setDeliveryMode()".
    Dove posso trovare informazioni o un esempio completo da studiare?

    Grazie a tutti.
    Ferrari L.

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    codice:
    #include "NetServices.as"
    
    NetServices.setDefaultGatewayUrl("http://localhost/flashservices/gateway");
    remote_conn = NetServices.createGatewayConnection();
    tuoServizio = remote_conn.getService("servizio");
    
    responder = {path:this};
    responder.onResult = function(result)
    {
    	this.path.res = result;
    	this.path.res.setDeliveryMode("page", 7, 0)
    };
    
    tester.funzioneRemota();
    Se la funzione remota è abilitata a rispondere con un numero limitato iniziale di record, da quel momento in poi ad ogni accesso a un elemento superiore del recordset, i record verranno recuperati a gruppi di 7.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    33
    Innanzi tutto, grazie per la risposta.
    Ti chiedo pero' qualche chiarimento:
    1) la parola "tester" dovrebbe essere "tuoServizio"?
    2) nella guida di Flash Remoting (updater release 1) si dice di definire il responder o
    nel metodo "getService()" (getService("servizio",responder)) oppure nella chiamata della
    funzione remota (funzioneRemota(responder,parametri). La procedura da te indicata,
    anche se concettualmente uguale, utilizza una forma differente; dove hai recuperato
    le informazoni per impostarla cosi'?
    3) Per impostare una pagina ColdFusion Mx a rispondere con un numero limitato di record,
    ho utilizzato l'istruzione: <cfset Flash.Pagesize = 7>. E' corretto?
    4) L'accesso ai record successivi del record-set deve essere effettuato richiamando
    nuovamente la funzioneRemota()?

    Ciao e grazie ancora.
    Ferrari L.

  4. #4
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    >1) la parola "tester" dovrebbe essere "tuoServizio"?

    esattamente, errore mio:

    codice:
    #include "NetServices.as"
    
    NetServices.setDefaultGatewayUrl("http://localhost/flashservices/gateway");
    remote_conn = NetServices.createGatewayConnection();
    tuoServizio = remote_conn.getService("servizio");
    
    responder = {path:this};
    responder.onResult = function(result)
    {
    	this.path.res = result;
    	this.path.res.setDeliveryMode("page", 7, 0)
    };
    
    tuoServizio.funzioneRemota();
    >La procedura da te indicata, anche se concettualmente uguale,
    >utilizza una forma differente

    non è uguale, perchè ti permette di creare un responder diverso per ogni chiamata, invece che definire tutte le funzione _Result nella timeline indicata come secondo parametro del getService

    >dove hai recuperato le informazoni per impostarla cosi'?

    leggendo il NetServices.as :)

    >Per impostare una pagina ColdFusion Mx a rispondere con un numero
    >limitato di record, ho utilizzato l'istruzione:
    > <cfset Flash.Pagesize = 7>. E' corretto?

    benissimo, così limiti la prima risposta, e poi al resto pensa il recordset in flash

    >4) L'accesso ai record successivi del record-set deve essere
    >effettuato richiamando nuovamente la funzioneRemota()?

    non serve, basta chiamare, ad esempio, un elemento successivo del recordset:


    codice:
    [...]
    responder.onResult = function(result)
    {
    	this.path.res = result;
    	this.path.res.setDeliveryMode("page", 7, 0)
    };
    // ora in "res" ci sono solo 7 record, quelli che hai impostato
    // tramite il Flash.Pagesize
    // se richiedi il 6, ad esempio:
    
    trace(res.getItemAt(5).Campo);
    
    // ti viene tracciato un campo già nel recordset
    // se ne chiami uno oltre il settimo:
    
    trace(res.getItemAt(15).Campo);
    
    // allora in automatico viene aggiornato il recordset con altri 7
    // come impostato con il setDeliveryMode

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    33
    Grazie un bel po' per l'esauriente spiegazione.

    La procedura che utilizzo io e' molto simile a quella che hai indicato tu (tranne per il
    fatto che definisco il responder nel metodo "getService()").
    Utilizzo l'isrtuzione <cfset Flash.Pagesize = n> nella pagina ColdFusion che esegue la
    query, visualizzo i records successivi utilizzando solo il metodo "getItemAt(n)" senza
    richiamare la pagina che esegue la query.
    Riesco a recuperare il primo gruppo di records, ma non i successivi.
    Detto cio', ti faccio un'ultima domanda; alla versione di ColdFusion Mx su cui hai provato
    la tua procedura, hai fatto qualche upgrade?
    Grazie ancora per l'aiuto.
    Ciao.
    Ferrari L.

  6. #6
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    >Riesco a recuperare il primo gruppo di records, ma non i successivi.

    intendi senza l'impostazione del deliveryMode?

    >alla versione di ColdFusion Mx su cui hai provato la tua procedura, hai fatto qualche upgrade?

    uhm, mi fai una domanda difficile. mi pare di si, così come per il flash remoting, ma non l'ultimo, quello uscito con la serie 2004 (per il remoting ho fatto l'aggiornamento dal remoting semplice all'mx)

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    33
    Il setDeliverMode()lo imposto appena recupero il record-set in Flash,
    come hai fatto tu, poi cerco di visualizzarne i record. Il primo gruppo lo visualizzo, gli altri no.
    Forse potrebbe esserci un bug nella versione di ColdFusion Mx che sto utilizzando io....
    Magari faccio l'upgrade alla versione 6.1 e poi riprovo.
    Comunque grazie ancora per l'aiuto.

    Ciao
    L.Ferrari

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.