Mysql
 sql >> Baza danych >  >> RDS >> Mysql

pobierz wartości tabeli sql do ponownego wykorzystania w trybie offline

Dla FLASH:

Aby zapisać dane lokalnie za pomocą Flash, możesz użyć jednego z 3 sposobów :pamięci podręcznej Flash Playera, SharedObject lub FileReference obiekt. A w przypadku lokalnego pliku zapomnij o PHP i MySQL, ponieważ mówimy tylko o danych, które masz (json, xml, txt, ... ).

- Pamięć podręczna Flash Playera :

Powinieneś wiedzieć, że Flash Player domyślnie umieszcza lokalną kopię twojego pliku w swojej pamięci podręcznej. Możesz użyć tej lokalnej kopii jako źródła danych offline, ale tutaj nie zapominaj, że Flash Player nie zapisał ostatniej wersji zdalnego pliku, ale pierwszą i że http://www.example.com/data.php różni się od http://www.example.com/data.php?123 nawet jeśli to ten sam plik! Aby uzyskać więcej informacji na ten temat, spójrz na moją odpowiedź na to pytanie .

- SharedObject :

Nie znam rozmiaru załadowanych danych, ale jak powiedział Adobe o SharedObject :

Myślę, że nie jest to używane do dużych plików i nie zaleca się przechowywania plików, ale kilka prostych danych. Oczywiście, jako plik cookie dla przeglądarki, SharedOject wymaga autoryzacji użytkownika do zapisywania danych na dysku twardym, a użytkownik może je usunąć w dowolnym momencie.

- Plik referencyjny :

Myślę, że to najlepszy sposób na zrobienie tego, czego szukasz. Powinieneś wiedzieć, że aby zapisać plik za pomocą FileReference, użytkownik jest proszony o wybranie pliku do zapisania danych i odczytania go po raz drugi. Więc jeśli nie chcesz interakcji użytkownika z Twoją aplikacją, zapomnij o tym.

FileReference na przykładzie :

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();
}

Ten kod pokaże użytkownikowi za każdym razem okno dialogowe zapisywania, oczywiście to tylko próbka, musisz dostosować go do swoich potrzeb ...

EDYTUJ

W przypadku AIR:

W środowisku AIR nie potrzebujemy obiektu FileReference, zamiast tego używamy Plik oraz FileStream obiekt do zapisania danych :

// 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);            
}

Mam nadzieję, że to pomoże.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Inne podejście do używania klauzuli IN w MySql

  2. Jak zobaczyć indeksy dla bazy danych lub tabeli w MySQL?

  3. Jak tworzyć kaskadowe listy rozwijane za pomocą mysql i php

  4. Określ rangę na podstawie wielu kolumn w MySQL

  5. mysql — alias kolumny dynamicznej