Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

tải xuống các giá trị của bảng sql để sử dụng lại ngoại tuyến

Đối với FLASH:

Để lưu dữ liệu cục bộ bằng flash, bạn có thể sử dụng một trong 3 cách:bộ đệm Flash Player, SharedObject hoặc FileReference vật. Và đối với tệp cục bộ của bạn, hãy quên PHP và MySQL vì chúng tôi chỉ nói về dữ liệu mà bạn nhận được (json, xml, txt, ...).

- Bộ nhớ cache của Flash Player:

Bạn nên biết rằng theo mặc định, trình phát flash đặt một bản sao cục bộ của tệp của bạn vào bộ nhớ cache của nó. Bạn có thể sử dụng bản sao cục bộ này làm nguồn dữ liệu ngoại tuyến của mình, nhưng ở đây đừng quên rằng trình phát flash không lưu phiên bản cuối cùng của tệp từ xa của bạn mà là phiên bản đầu tiên và http://www.example.com/data.php khác với http://www.example.com/data.php?123 ngay cả khi đó là cùng một tệp! Để biết thêm chi tiết về điều đó, hãy xem câu trả lời của tôi cho câu hỏi này .

- SharedObject:

Tôi không biết kích thước dữ liệu đã tải của bạn, nhưng như Adobe đã nói về SharedObject:

Tôi nghĩ rằng điều đó không được sử dụng cho các tệp lớn và không nên lưu trữ các tệp trừ một số dữ liệu đơn giản. Tất nhiên, như một cookie cho trình duyệt, SharedOject cần sự cho phép của người dùng để ghi dữ liệu vào ổ cứng và người dùng có thể xóa dữ liệu đó bất kỳ lúc nào.

- FileReference:

Tôi nghĩ đây là cách tốt nhất để làm những gì bạn đang tìm kiếm. Bạn nên biết rằng để lưu tệp bằng FileReference, người dùng của bạn được mời chọn tệp để lưu dữ liệu và đọc tệp đó trong lần thứ hai. Vì vậy, nếu bạn không muốn bất kỳ tương tác nào của người dùng với ứng dụng của mình, hãy quên cách này.

FileReference sử dụng ví dụ:

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

Đoạn mã này sẽ hiển thị mỗi khi một hộp thoại lưu cho người dùng, tất nhiên, đó chỉ là một mẫu, bạn phải điều chỉnh nó cho phù hợp với nhu cầu của mình ...

CHỈNH SỬA

Đối với AIR:

Với AIR, chúng tôi không cần đối tượng FileReference, thay vào đó chúng tôi sử dụng Tệp FileStream đối tượng để lưu dữ liệu:

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

Hy vọng điều đó có thể giúp ích.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn các hàng từ bảng MySQL có dấu thời gian PHP cũ hơn X

  2. Kết nối trái không trả về tất cả các hàng

  3. Sử dụng SQLAlchemy ORM cho id không phải khóa chính, duy nhất, tự động tăng dần

  4. Docker Soạn mysql nhập .sql

  5. Chiến lược đồng bộ hóa cơ sở dữ liệu từ nhiều vị trí vào một cơ sở dữ liệu trung tâm và ngược lại