Nếu bạn có một lượng lớn dữ liệu đã nhập trong cơ sở dữ liệu sql trên máy chủ của tôi, làm cách nào để gửi dữ liệu này tới máy khách.Làm sao để tuần tự hóa các cấu trúc bằng cách sử dụng bộ đệm giao thức và sử dụng chúng trong Dart trên Ajax
Trả lời
Đầu tiên cài đặt protoc trên máy tính của bạn sử dụng
sudo apt-get install protobuf-compiler
Sau đó cài đặt các thư viện đi giao thức đệm từ https://code.google.com/p/goprotobuf/. Phiên bản dartlang có thể được tìm thấy ở đây: https://github.com/dart-lang/dart-protoc-plugin.
Bước tiếp theo là viết tệp .proto chứa định nghĩa của tin nhắn được gửi đi. có thể tìm thấy các ví dụ tại đây: https://developers.google.com/protocol-buffers/docs/proto.
Ví dụ:
message Car {
required string make = 1;
required int32 numdoors = 2;
}
Sau đó sử dụng công cụ protoc để biên dịch một file đi và một tập tin phi tiêu cho file proto này.
Để tạo một đối tượng trong xe đi, hãy nhớ sử dụng các loại cung cấp:
c := new(Car)
c.Make = proto.String("Citroën")
c.Numdoors = proto.Int32(4)
Sau đó, bạn có thể gửi các đối tượng trên một http.ResponseWriter, w như sau:
binaryData, err := proto.Marshal(c)
if err != nil {
// do something with error
}
w.Write(binaryData)
Trong mã Dart, bạn có thể tìm nạp thông tin như sau:
void getProtoBuffer() {
HttpRequest.request("http://my.url.com", responseType: "arraybuffer").then((request) {
Uint8List buffer = new Uint8List.view(request.response, 0, (request.response as ByteBuffer).lengthInBytes); // this is a hack for dart2js because of a bug
Car c = new Car.fromBuffer(buffer);
print(c);
});
}
Nếu mọi thứ đã hoạt động, bây giờ bạn sẽ có xe ô tô o bject trong ứng dụng Dart của bạn :)
- 1. Mã hóa cấu trúc dữ liệu tuần hoàn (ví dụ: đồ thị được hướng dẫn) sử dụng bộ đệm giao thức
- 2. Làm thế nào để tuần tự hóa các trường tạm thời bằng cách sử dụng jackson?
- 3. Trình tiết kiệm Apache và Bộ đệm giao thức của Google được sử dụng để làm gì?
- 4. Tuần tự hóa hiệu năng cao: Bộ đệm giao thức Java vs Google so với ...?
- 5. Từ điển trong bộ đệm giao thức
- 6. Tuần tự hóa nhanh/giải tuần tự hóa các cấu trúc
- 7. Boost.Asio với bộ đệm giao thức google
- 8. Sử dụng readObject/writeObject trong Tuần tự hóa
- 9. Thực hiện các cấu trúc dữ liệu tùy chỉnh Sử dụng các giao thức Clojure
- 10. Làm thế nào để sử dụng Magento bộ nhớ đệm trong khi sử dụng "API Magento"
- 11. Sử dụng bộ nhớ tuần tự các mảng byte được ghép nối với Protobuf-net
- 12. Sự khác biệt tuần tự hóa cấu trúc JSON.Net
- 13. sử dụng swig để liên kết bộ đệm giao thức google
- 14. Các cấu trúc lồng nhau với các phương thức bằng cách sử dụng các mẫu
- 15. Khi nào sử dụng giao diện trong Dart?
- 16. Tại sao scala sử dụng phản xạ để gọi phương thức trên kiểu cấu trúc?
- 17. Sử dụng Gson để tuần tự hóa POJO
- 18. Làm thế nào để tuần tự hóa các nguyên mẫu Java bằng cách sử dụng Jersey REST
- 19. Byte để tuần tự hóa byte của một cấu trúc trong C#
- 20. Sử dụng bộ đệm Giao thức làm đối tượng Dữ liệu chung?
- 21. Tăng tuần tự hóa bằng cách sử dụng các lưu trữ đa hình
- 22. Cấu trúc ứng dụng sử dụng WCF
- 23. Bộ đệm giao thức C# .net - hỗ trợ protobuf-net để tuần tự hóa từ điển các giá trị đối tượng?
- 24. Cách cấu trúc ứng dụng C++ để sử dụng bộ xử lý đa lõi
- 25. Tại sao cần gọi: this() trên cấu trúc để sử dụng các thuộc tính tự động trong C#?
- 26. Làm cách nào để sử dụng FFI của Haskell trên các cấu trúc?
- 27. So sánh hai cấu trúc bằng cách sử dụng ==
- 28. Sử dụng cấu trúc C trong Java
- 29. Đăng dữ liệu dạng tuần tự và các biến phụ bằng cách sử dụng JQuery
- 30. Làm thế nào để cấu trúc lại một lớp được tuần tự hóa trong .NET?
Tôi ngạc nhiên khi đọc dữ liệu nhị phân dưới dạng chuỗi hoạt động. Bạn làm gì về mã hóa ký tự? Ví dụ: dữ liệu UTF8 không bao giờ nên chứa các chuỗi byte nhất định: http://en.wikipedia.org/wiki/UTF-8#Invalid_byte_sequences –
Xin lỗi, bạn hoàn toàn đúng! Mã gốc không hoạt động với utf-8. Tôi sẽ cập nhật nó ... xong! – ehrt1974
Câu trả lời tuyệt vời ... bạn có thể giải thích lý do tại sao hack dart2js này là bắt buộc? Tôi đánh nó ngay trước khi tôi đọc câu trả lời của bạn và tôi tò mò. – sjr