Mysql
 sql >> Database >  >> RDS >> Mysql

scaricare i valori della tabella sql per il riutilizzo offline

Per FLASH :

Per salvare i dati in locale con flash, puoi utilizzare uno dei 3 modi seguenti:la cache di Flash Player, un SharedObject o un FileReference oggetto. E per il tuo file locale, dimentica PHP e MySQL perché stiamo parlando solo dei dati che hai ( json, xml, txt, ... ).

- Cache di Flash Player :

Dovresti sapere che per impostazione predefinita, Flash Player inserisce una copia locale del tuo file nella sua cache. Puoi usare questa copia locale come fonte offline dei tuoi dati, ma qui non dimenticare che flash player non ha salvato l'ultima versione del tuo file remoto ma la prima e che http://www.example.com/data.php è diverso da http://www.example.com/data.php?123 anche se è lo stesso file! Per maggiori dettagli a riguardo, dai un'occhiata a la mia risposta a questa domanda .

- Oggetto condiviso :

Non conosco la dimensione dei tuoi dati caricati, ma come ha detto Adobe su SharedObject :

Penso che non venga utilizzato per file di grandi dimensioni e non sia consigliabile archiviare file ma alcuni semplici dati. Ovviamente, come cookie per il browser, SharedOject necessita dell'autorizzazione dell'utente per scrivere dati sul disco rigido e l'utente può eliminarli in qualsiasi momento.

- Riferimento file:

Penso che questo sia il modo migliore per fare quello che stai cercando. Dovresti sapere che per salvare un file utilizzando FileReference, il tuo utente è invitato a selezionare un file per salvare i dati e leggerlo una seconda volta. Quindi, se non vuoi che nessun utente interagisca con la tua applicazione, dimentica questo modo.

FileReference utilizzando l'esempio:

var local_file_name:String = 'local.data',
    file:FileReference = new FileReference(),
    local_file_filter:FileFilter = new FileFilter('local data file', '*.data'),
    remote_data_url:String = 'http://www.example.com/data.php',
    url_request:URLRequest,
    url_loader:URLLoader,       
    connected:Boolean = true;

if(connected){
    get_remote_data();
} else {
    get_local_data();
}

function get_remote_data(): void {
    //we use a param to be sure that we have always the last version of our file
    url_request = new URLRequest(remote_data_url + ('?' + new Date().getTime()));
    url_loader = new URLLoader();
    url_loader.addEventListener(Event.COMPLETE, on_data_loaded);
    url_loader.load(url_request);           
}

function get_local_data(): void {
    // show the select dialog to the user to select the local data file
    file.browse([local_file_filter]);
    file.addEventListener(Event.SELECT, on_file_selected);          
}

function on_data_loaded(e:Event): void {
    var data:String = e.target.data;
    // if the remote data is successfully loaded, save it on a local file 
    if(connected){
        // show the save dialog and save data to a local file
        file.save(data, local_file_name);
    }
    // use your loaded data
    trace(data);            
}

function on_file_selected(e:Event): void {
    file.addEventListener(Event.COMPLETE, on_data_loaded);
    file.load();
}

Questo codice mostrerà ogni volta una finestra di salvataggio all'utente, ovviamente è solo un esempio, devi adattarlo alle tue esigenze ...

MODIFICA

Per AIR :

Con AIR non abbiamo bisogno di un oggetto FileReference, invece usiamo File e un FileStream oggetto per salvare i dati :

// for example, our local file will be saved in the same dir of our AIR app
var file:File = new File( File.applicationDirectory.resolvePath('local.data').nativePath ),
    remote_data_url:String = 'http://www.example.com/data.php',
    data_url:String = remote_data_url,
    url_request:URLRequest,
    url_loader:URLLoader,       
    connected:Boolean = true;

if(!connected){
    // if we are not connected, we use the path of the local file
    data_url = file.nativePath;     
}

load_data();

function load_data(): void {
    url_request = new URLRequest(data_url);
    url_loader = new URLLoader();
    url_loader.addEventListener(Event.COMPLETE, on_data_loaded);
    url_loader.load(url_request);           
}

function on_data_loaded(e:Event): void {
    var data:String = e.target.data;
    if(connected){          
        // save data to the local file
        var file_stream:FileStream = new FileStream();
            file_stream.open(file, FileMode.WRITE);
            file_stream.writeUTFBytes(data);
            file_stream.close();
    }
    trace(data);            
}

Spero che possa aiutare.