6

Tôi đã được giao nhiệm vụ làm cho ứng dụng web của công ty tôi khả dụng khi ngoại tuyến. Trước khi chuyển sang giai đoạn phát triển thực tế, tôi muốn chắc chắn rằng chiến lược hiện tại của tôi sẽ không trở thành một bức tượng bán thân. Lần đầu tiên tôi nghĩ về việc sử dụng bộ nhớ cache ứng dụng html5 nhưng sau khi thực hiện một số thử nghiệm, tôi thấy rằng có vẻ như không hoạt động bên máy chủ nhưng html thực tế được hiển thị (Vui lòng sửa tôi nếu tôi sai). Quay lại đầu trang Điều này sẽ không hoạt động vì html được hiển thị phụ thuộc vào người hiện đang đăng nhập. Từ các thử nghiệm của tôi, nó luôn hiển thị html như thể người cuối cùng đăng nhập (trực tuyến) đang đăng nhập.Làm cho ASP.Net (C#) Ứng dụng web khả dụng ngoại tuyến

Chiến lược hiện tại của tôi là: Tôi chỉ lưu lại trang đăng nhập và trang ngoại tuyến (.html) tương ứng với từng trang aspx cần có sẵn khi ngoại tuyến. Mỗi lần đăng nhập thành công (trực tuyến) dẫn đến việc tạo hoặc cập nhật Cơ sở dữ liệu Web SQL hoặc IndexDB (tùy thuộc vào trình duyệt) với tất cả dữ liệu cần thiết để người đó hoạt động ngoại tuyến bao gồm một bảng sẽ được sử dụng cho thông tin xác thực đăng nhập. Bằng cách này, yêu cầu duy nhất để đăng nhập ngoại tuyến là đăng nhập bằng thông tin xác thực đăng nhập của bạn ít nhất một lần.

Mối quan tâm của tôi là tôi đang làm quá mức. Để thực hiện công việc này, tôi sẽ cần phải tạo một trang html cho mỗi trang hiện tại (rất nhiều trang) và tôi sẽ phải viết lại mọi thứ hiện đang được thực hiện trên máy chủ trong JavaScript bao gồm xác thực, gọi cơ sở dữ liệu, điều khiển populating chẳng hạn như danh sách thả xuống và lưới dữ liệu, v.v. Ngoài ra mọi thứ mà tôi thay đổi trong tương lai sẽ yêu cầu thay đổi ngoại tuyến tiếp theo.

Có một thực hành tốt nhất được thiết lập cho những gì tôi đang cố gắng làm điều đó tôi đang nhìn hoặc tôi đang mạo hiểm vào mặt đất mới?

+0

Tôi không có chuyên môn ở đây nhưng nó có vẻ như bạn cần phải có những người dùng khác nhau đăng nhập vào trang web của bạn, tất cả từ cùng một phiên trình duyệt và tất cả bị ngắt kết nối? Điều đó có vẻ giống như một kịch bản khó có thể yêu cầu bạn đặt tên người dùng và mật khẩu bộ nhớ cache trên máy khách của bạn. Có thể là một thực tế nguy hiểm. – andleer

+0

Cảm ơn bạn đã trả lời. Nếu tôi hiểu bạn một cách chính xác, tôi nghĩ rằng bạn đang hiểu lầm chiến lược của tôi. Kế hoạch là cho phép bất kỳ ai đã đăng nhập trước đó ở chế độ trực tuyến để hoạt động sau trong chế độ ngoại tuyến. Các trường hợp bình thường cho các ứng dụng mà tôi đang phát triển là nó sẽ được truy cập bởi một người quản đốc trên một thiết bị di động (iphone, droid, máy tính bảng, vv) vì vậy thông thường cùng một người sẽ sử dụng cùng một thiết bị. Bạn đang nói rằng lưu trữ mật khẩu thông qua Web SQL hoặc IndexDB là thực hành nguy hiểm? Nếu vậy, tại sao? –

+1

Chắc chắn lưu trữ tên người dùng và mật khẩu tại khách hàng có thể không được thực hành tốt cùng một lúc, những gì james dường như có vẻ là vấn đề chính hãng được giải quyết. Lý tưởng nhất là khi người dùng cuối muốn có quyền truy cập vào hệ thống ngoại tuyến, anh ta cũng cần phải được xác thực trực tuyến và tiếp tục công việc của mình ngoại tuyến và đồng bộ hóa trực tuyến. Tôi sẽ nghĩ rằng để sử dụng một cái gì đó như silverlight, nhưng có vẻ là một vấn đề về khách hàng truy cập silverlight, do đó, lưu trữ Isolated là lựa chọn duy nhất còn lại với. –

Trả lời

3

Vui lòng tham khảo các liên kết này, cung cấp cho bạn một số thông tin chi tiết về những gì cần đạt được. Tôi không chắc đây là những phương pháp hay nhất, nhưng đây sẽ là điểm khởi đầu tốt.

http://www.c-sharpcorner.com/UploadFile/aravindbenator/offline-mvc3-application/ http://www.developerfusion.com/article/84438/isolated-storage/

+0

Cảm ơn Siva vì câu trả lời này. Tôi mong muốn nhìn vào kho lưu trữ riêng biệt hơn nữa vì nó xuất hiện rằng nó sẽ là một công cụ tốt. Mô hình mà bạn đã chỉ ra trên c-sharpcorner có vẻ giống như một mô hình tốt để triển khai chiến lược mà tôi đã phác thảo trong câu hỏi ban đầu của mình. Có phải ý kiến ​​của bạn rằng việc lưu vào bộ nhớ cache một tệp html ngoại tuyến tương ứng với mỗi tệp aspx trực tuyến là giải pháp tốt nhất? –

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