State Management

State management (quản lý trạng thái) là cơ chế lưu trữ dữ liệu qua những lần chuyển trang và postback của trang của người dùng. Nó có thể được truy xuất từ một hoặc tất cả các trang được yêu cầu từ trình duyệt.

State management rất thích hợp để lưu trữ thông tin cụ thể được kết nối đến một người dùng cụ thể hoặc mức ứng dụng.

Một vài kĩ thuật state management có thời gian timout và sau thời gian này, dữ liệu sẽ không còn. Thời gian timout xuất hiện khi người dùng không còn hoạt động trước thời gian quy định.

Có 2 cách để quản lý trạng thái: 1 là ở client (client-side state management), 2 là ở server (server-side state management).

+ Client-side state management: không có thông tin nào được lưu trên server giữa các round trip. Thông tin sẽ được lưu trữ trên trang web hoặc trên máy tính của người dùng. Các kĩ thuật:

· Query strings: là thông tin nằm cuối URL của trang web, được dùng để lưu dữ liệu chẳng hạn như số trang hoặc thông tin khác mà không quan trọng. Trong đường dẫn URL này, query string bắt đầu với dấu ?. Cách này đơn giản nhưng rất hạn chế, chỉ dùng để lưu một số dữ liệu trạng thái, dễ dành để truyền thông tin từ trang này sang trang khác. Người dùng có thể thấy query string mà không cần phải sử dụng thao tác đặc biệt nào.

Ví dụ: http://localhost/default.aspx?a=1;b=2

* Hạn chế:

_ sử dụng kĩ thuật query string khi chỉ truyền dữ liệu kiểu chuỗi.

_ rủi ro khi bản truyền vào dữ liệu không an toàn.

_ tăng traffic network.

_ có một số trình duyệt hạn chế khi sử dụng query string là độ dài tối đa cho phép có thể là 2083 kí tự.

* Ưu điểm:

_ là cách đơn giản để bảo quản thông tin trạng thái

_ không yêu cầu tài nguyên từ server

· Hidden fields: các trường ẩn theo chuẩn HTML có thể được sử dụng trong HTML form. Hidden fields không hiển thị ra ngoài trình duyệt. Khi một trang có chứ Hidden fields được gửi đến web server, nội dung của nó vẫn được gửi kèm theo. Cơ bản, một trường HTML ẩn là một phần nhỏ để lưu thông tin bất kì trang nào mà bạn muốn truyền theo sang trang các trang khác.

* Hạn chế:

_ chỉ lưu một giá trị trong thuộc tính value của chúng. Giá trị chỉ là dữ liệu kiểu chuỗi.

_ rủi ro khi bạn truyền vào dữ liệu không an toàn.

_ tăng network traffic.

* Ưu điểm:

_ không đỏi hỏi tài nguyên từ server nên hiệu xuất cao.

_ có thể chứa lượng lớn dữ liệu.

· Cookies: là một phần nhỏ của dữ liệu được lưu trữ cả trong bộ nhớ của trình duyệt web của client hoặc như một tập tin văn bản trong hệ thống tập tin của client. Cookies được dùng để định danh người dùng, lưu thông tin trạng thái, tham chiếu…

* Hạn chế:

_ hầu hết các trình duyệt hỗ trợ lưu trữ cookies đến 4Mb, điều này dẫn đến nó chỉ có thể lưu được một lượng rất nhỏ dữ liệu.

_ các trình duyệt có số lượng cookies hạn chế. Một trang web có thể lưu được 20 cookies.

_ người dùng có thể tắt lưu trữ cookies

_ bảo mật kém.

* Ưu điểm:

_ không cần dùng tài nguyên từ server.

_ lưu trên máy của client nên hiệu xuất cao.

+ Server-side state management: thông tin sẽ được lưu trữ trên server, do đó có mức độ bảo mật cao nhưng có thể cần nhiều tài nguyên hơn. Các kĩ thuật:

· Application state: hầu hết các nền tảng ứng dụng cho phép developer lưu các giá trị sử dụng các đối tượng trạng thái của ứng dụng trong phạm vi ứng dụng. Aaplication state là cơ chế lưu trữ toàn cục từ tất cả các trang trong ứng dụng và vì thế nó có ích cho việc sử dụng thông tin cần được lưu giữ giữa các round trip, các trang, các session.

· Session state: tương tự như Application state, ngoại trừ nó giới hạn trong session của trình duyệt hiện thành. Nếu người dùng khác sử dụng ứng dụng của bạn, mỗi lần như vậy sẽ được tham chiếu đến các đối tượng session khác.

· Database: lưu giữ trạng thái sử dụng công nghệ csdl là một kinh nghiệm phổ biến dùng để lưu trữ dữ liệu của người dùng cụ thể. DB storage có ích cho việc lưu giữ trạng thái có tính lâu dài hoặc trạng thái phải được “quay ngược”, thậm chí ngay cả khi server phải khởi động lại.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s