2012-01-30 32 views

Trả lời

5

Sau khi xem xét mã , đây là những gì tôi hiểu:

  1. Dữ liệu Flash cuối cùng để lưu trữ dữ liệu giữa các yêu cầu.
  2. Vì Play là không trạng thái, trạng thái đó được lưu trong cookie phiên, được gửi tới ứng dụng khách và gửi lại với yêu cầu tiếp theo.
  3. Bản đồ dữ liệu là dữ liệu đến từ khách hàng qua cookie.
  4. Bản đồ ngoài là dữ liệu mà ứng dụng Play ghi vào phiên bản Flash.
  5. Nếu dữ liệu thay đổi, dữ liệu trong Bản đồ ngoài được sử dụng để xây dựng nội dung của cookie để gửi lại cho khách hàng.

Vì vậy, từ đây, tôi sẽ nói rằng flash.discard() được sử dụng để vứt bỏ mọi thứ sẽ đi tới ứng dụng khách và flash.clear() được sử dụng để vứt bỏ mọi thứ đến từ khách hàng ...

+0

Giải thích tốt, tôi đoán nó rõ ràng được đưa ra như thế nào flash hoạt động, tôi chỉ không nghĩ về nó. – ripper234

2

Đó là một câu hỏi hay. Trong khi tôi không biết câu trả lời, hoặc, mã nguồn tại github sẽ giúp:

https://github.com/playframework/play/blob/master/framework/src/play/mvc/Scope.java

Nhìn lướt qua cho thấy Phạm vi giữ hai hashmaps, một trong những tên data và khác có tên out. Cả hai đều lưu trữ cùng một thông tin. Nhưng flash.clear() được hành động dựa trên data và flash.discard() được hành động dựa trên out ... Funny ...

Better gọi cả hai, chỉ trong trường hợp =)

+0

Vâng, tôi đã xem mã trước khi đăng ... nó không giúp tôi hiểu. – ripper234

+0

Xem câu trả lời của @dertoni. – ripper234

Các vấn đề liên quan