ASP.NET AJAX
Lương Trần Hy Hiến
Agenda
(cid:1) AJAX là gì? (cid:1) Cơ chế truyền thông đồng bộ (cid:1) Cơ chế truyền thông bất đồng bộ (cid:1) So sánh 2 cơ chế (cid:1) Phân tích mã AJAX (cid:1) Demo (cid:1) Hướng dẫn thực hành
2
AJAX là gì?
(cid:1) Asynchronous JavaScript and XML
(cid:1) Kỹ thuật tương tác với server theo cơ chế bất
đồng bộ
(cid:1) Nền tảng của AJAX
(cid:1) HTML (cid:1) CSS (cid:1) JavaScript (chủ chốt) (cid:1) XML
3
Cơ chế synchronization
4
Cơ chế asynchronization
5
So sánh sync và async
6
XMLHttpRequest
(cid:1) Là một đối tượng cho phép tạo các requests và nhận response theo cơ chế bất đồng bộ (bằng mã javascript) mà không đòi hỏi thao tác submit của người dùng.
(cid:1) XMLHttpRequest được cài đặt bởi Microsoft năm 1999 như một ActiveX trong IE và trở thành nhân tố chuẩn cho mọi trình duyệt.
7
Hoạt động của XMLHttpRequest
1. Tạo một thể hiện (instance) của đối tượng
XMLHttpRequest, giả sử là Obj
2. Sử dụng đối tượng Obj để tạo một lời gọi (call) bất
đồng bộ tới server và định nghĩa một hàm “gọi làm” – callback. Hàm này sẽ được thực thi tự động khi nhận được response từ server.
3. Đọc response của server trong hàm callback. 4. Cập nhật lại trang sử dụng các dữ liệu đã nhận được. 5. Quay lại bước 2.
8
Tạo XMLHttpRequest
(cid:1) XMLHttpRequest được cài đặt khác nhau trên
các trình duyệt.
(cid:1) Đối với IE:
(cid:1) Obj = new ActiveXObject(“Microsoft.XMLHttp”);
(cid:1) Đối với các trình duyệt khác: FF, Chrome,
Opera… (cid:1) Obj = new XMLHtttpRequest();
9
Các phương thức của XMLHttpRequest
(cid:1) open(method, server, async): đặt các tham số
cho request (cid:1) Method: Quy định hình thức vận chuyển dữ liệu
đến server. Có 2 hình thức: POST/GET
(cid:1) Server: Trang web nhận và xử lý tham số sau đó
trả kết quả về client thông qua thuộc tính responseText.
(cid:1) Async: Qui đị nh cơ chế truyền thông (true: bất
đồng bộ, false: đồng bộ) (cid:1) send: gửi request đến server
10
GET/POST
(cid:1) GET:
(cid:1) Obj.open(“GET”, “demo.aspx?id=a&cat=b”, true); (cid:1) Obj.onreadystatechange = ten_ham_callback; (cid:1) Obj.send(null);
(cid:1) POST:
(cid:1) Obj.open(“POST”, “demo.aspx”, true); (cid:1) Obj.onreadystatechange =
handleRequestStateChange;
(cid:1) Obj.send(“id=a&cat=b”);
11
Các thuộc tính của XMLHttpRequest
12
13
14
Ajax Extension
• ScriptManager
•
Timer
• UpdatePanel • UpdateProgress