Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    51

    [RISOLTO] AJAX, mal di testa trapanante

    Ciao a tutti, mi sta venendo un grosso mal di testa a causa di questo problema (tenete conto che uso ajax da due giorni quindi abbiate pietà per un povero noob).
    L'argomento è sempre quello accennato in "funzione di wait", ma qui devo entrare proprio nello specifico perchè sebbene sia riuscito a fare quell'esercizio con il wait non so come comportarmi nel mio caso specifico.

    Dunque.

    Io devo
    - connettermi a facebook (operazione gestita con javascript).
    - far partire una routine che fa dei lavori con facebook e con un database mysql, ogni tot secondi.

    Il problema è che la connessione a facebook è un'operazione piuttosto lenta(ci possono volere anche 10 secondi a volte). Per questo voglio connettermi una volta sola e sfruttare la connessione per lavorare. Se solo ci fosse stata una funzione di wait su php che funzioni in modo accettabile non avrei questo problema, ma comunque.

    Certo, potrei sempre far gestire anche la connessione al php che lancio tramite ajax; ma come dicevo è lentissima e poi connettersi ogni tot secondi a facebook non mi sembra una soluzione elegante XD
    Quindi vorrei mantenere la connessione; e qui sorge il problema, perchè una volta lanciato il file php tramite ajax, quest'ultimo non ha più le informazioni di connessione. Come posso trasportare la connessione da una pagina all'altra? Vi giuro che mi sta venendo il mal di testa!
    Comunque, javascript e ajax mi risultano piuttosto alieni; qui riporto il codice che serve per connettersi a facebook, così che possiate dirmi secondo voi come posso portare la connessione dall'altra parte:
    Codice PHP:
    window.fbAsyncInit = function() {
                FB.init({
                    appId   : '<?php echo $facebook->getAppId(); ?>',
                    session : <?php echo json_encode($session); ?>, // don't refetch the session when PHP already has it
                    status  : true, // check login status
                    cookie  : true, // enable cookies to allow the server to access the session
                    xfbml   : true // parse XFBML
                });

                // whenever the user logs in, we refresh the page
                    FB.Event.subscribe('auth.login', function() {
                    window.location.reload();
                });
            };

            (function() {
                var e = document.createElement('script');
                e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
                e.async = true;
                document.getElementById('fb-root').appendChild(e);
            }());
          
            var currentPage = "";
    Grazie mille...

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    51
    Ok, dato che sono riuscito a risolvere (indovinate cosa mi ha permesso di risolvere il problema? esatto: aver posto la domanda), riporto anche la soluzione.
    Il tutto stava nella variabile $session (mi ci è proprio scappato l'occhio una volta postato qui).

    Codice PHP:
    routineRequest.open("GET","synchro_routine.php?session="+"<?=addslashes(json_encode($session))?>"); 
    routineRequest.send(null);
    tutto qui. l'addslashes l'ho messo perchè altrimenti la variabile codificata con json conteneva apici e mi incasinava js.

    dall'altra parte ho preso il contenuto di $session così:

    Codice PHP:
    $session json_decode(stripslashes($_GET['session'])); 

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.