Tài liệu XML chỉ chứa đựng dữ liệu và cách lưu trữ dữ liệu mà không hề đề cập tới cách thức trình bày dữ liệu, chứa những đặc tả về cấu trúc dữ liệu .
Mỗi cấu trúc gồm nhiều phần tử (element), mỗi thành phần được bắt đầu với một thẻ bắt đầu (Start–tag) và kết thúc với một thẻ kết thúc (End–tag).
Giữa Start–tag và End–tag là nội dung của phần tử này.
Nội dung có thể bao gồm dữ liệu văn bản hay có thể là một phần tử khác
Vd :
<?xml version="1.0"?> <Catalog>
<Product>
<ProductID>F10</ProductID>
<ProductName>Shimano Calcutta </ProductName> <ListPrice>47.76</ListPrice> </Product> <Product> <ProductID>F20</ProductID> <ProductName>Bantam Lexica</ProductName> <ListPrice>49.99</ListPrice> </Product> </Catalog>
Đối tượng XMLHttpRequest
Ứng dụng web truyền thống đều phải tái nạp toàn bộ trang web khi gửi yêu cầu đến server ->sự ngắt quãng trong công việc. Vì thế yêu cầu đặt ra là làm cho các request của server không đồng bộ và người dùng vẫn có thể làm việc trong khi đợi tín hiệu trả lời từ server.
Trước tiên cần tạo một đối tượng XMLHttpRequest bằng JavaScript trước khi sử dụng đối tượng này để gửi request và xử lý các response.
XMLHttpRequest chưa là chuẩn vì thế phải dùng JavaScript theo nhiều cách cho mỗi trình duyệt khác nhau để tạo một thể hiện của
XMLHttpRequest.
Đoạn mã JavaScript sau dễ dàng tạo ra các thể hiện của đối tượng XMLHttpRequest mà không quan tâm tới loại trình duyệt nào:
PHP Code: var xmlHttp; function createXMLHttpRequest() { if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } }
Trước tiên, tạo một biến toàn cục tên là xmlHttp để lưu trữ một tham chiếu đến đối tượng.
Phương thức createXMLHttpRequest thực hiện việc tạo một thể hiện của XMLHttpRequest
Window.ActiveXObject sẽ trả về một biến kiểu object hay giá trị null, tương đương với điều kiện true hay false của câu lệnh if
Sự tương tác:
Hình sau cho thấy mô hình tương tác chuẩn trong một ứng dụng Ajax
Công nghệ trong Ajax
Hàm callback kiểm tra thuộc tính readyState trên đối tượng XMLHttpRequest Và xem xét mã trạng thái trả về từ server.
Remote Scripting:
Về cơ bản, remote scripting là một loại lời gọi các thủ tục từ xa, sự tương tác với server vẫn như các ứng dụng Web thông thường, nhưng không tái nạp (refresh) toàn bộ trang web. Chỉ với AJAX, mới có thể sử dụng công nghệ bất kỳ phía server để có thể nhận các request, xử lí chúng và trả về kết quả. Với mỗi công nghệ phía server, có một số lựa chọn cho phía client để thực hiện remote scripting.
Có thể nhúng vào các đoạn Flash, Java applet, hay các ActiveX vào ứng dụng
Microsoft có giải pháp riêng về remote scripting, được gọi là Microsoft Remote Scripting (MSRS)
Vd: đọc thêm RemoteScripting
Vấn đề bảo mật:
Đối tượng XMLHttpRequest được xử lí bảo mật theo mô hình “sandbox” của trình duyệt.
Sức mạnh của phương pháp bảo mật giới hạn này tùy thuộc vào từng trình duyệt
Vd:
Internet Explorer hiển thị một cảnh báo tình trạng, nguy cơ không an toàn có thể tồn tại và cho phép người dùng lựa chọn có tiếp tục với request đó nữa hay không
Firefox sẽ dừng request lại và hiển thị thông điệp lỗi trên JavaScript
Hạn chế của Ajax:
Các trang web động không được ghi vào bộ lưu lịch sử lướt web của trình duyệt->nút mất tác dụng->giải
pháp khắc phục?!.
Người dùng có trình duyệt không hỗ trợ Ajax, JavaScript hay đối tượng
XMLHttp được yêu cầu=>Ko sử dụng
được Ajax.
Công nghệ mới có thể mở ra cách thức tấn công mới!?.
Tham khảo và thu thập từ nhiều nguồn: vi.wikipedia.org/wiki
Diễn đàn tin học Internet