Tôi đang làm việc trên nền tảng di chuyển để di chuyển các ứng dụng web từ thiết bị này sang thiết bị khác. Tôi đang mở rộng nó để thêm hỗ trợ cho việc bảo tồn trạng thái JavaScript. Tác vụ chính của tôi là tạo một tệp đại diện cho trạng thái hiện tại của ứng dụng thực thi, để truyền tải nó đến một thiết bị khác và tải lại trạng thái trong thiết bị đích.Làm cách nào để bảo toàn trạng thái đóng JavaScript?
Các giải pháp cơ bản tôi đã thông qua là để điều hướng các đối tượng cửa sổ và để lưu tất cả các thuộc tính hậu duệ của nó sử dụng JSON như là định dạng cơ sở cho xuất khẩu và mở rộng nó để thực hiện một số tính năng:
- giữ tham chiếu đối tượng, ngay cả khi cyclic (dojox.json.ref thư viện)
- hỗ trợ cho tính giờ
- ngày
- phi numericproperties của mảng
- tham chiếu đến DOM yếu tố
nhiệm vụ quan trọng nhất tôi cần giải quyết ngay bây giờ là xuất khẩu bao đóng. Tại thời điểm này tôi không biết làm thế nào để thực hiện tính năng này. Tôi đọc về thuộc tính EcmaScript bên trong [[scope]]
chứa chuỗi phạm vi của một hàm, một đối tượng giống như danh sách được tạo bởi tất cả ngữ cảnh kích hoạt lồng nhau của hàm. Rất tiếc, JavaScript không thể truy cập được. Bất cứ ai cũng biết nếu có cách nào để truy cập trực tiếp tài sản [[scope]]
? Hoặc một cách khác để bảo vệ trạng thái của một đóng cửa?
Không, không có cách nào tiêu chuẩn để truy cập vào '[[Phạm vi]] hiện tại', việc triển khai duy nhất cung cấp cách thức cho Rhino, thông qua thuộc tính '__parent__' của nó, ví dụ: 'var scope = function() {} .__ parent __;' – CMS
Thuộc tính '__parent__' của Rhino có giống nhau do Firebug cung cấp không? –