This web page requires JavaScript to be enabled.

JavaScript is an object-oriented computer programming language commonly used to create interactive effects within web browsers.

How to enable JavaScript?

Asynchronous JavaScript and XML

10cth1-2 January 10, 2011 2

Cái này hay lắm đó các bạn, ai mún đi bên mảng lập trình web thì nên coi…

AJAX (tiếng Anh: "Asynchronous JavaScript and XML" – nghĩa là "JavaScript và XML không đồng bộ") là một nhóm các công nghệ phát triển web được sử dụng để tạo các ứng dụng web động hay các ứng dụng giàu tính Internet (rich Internet application). Từ Ajax được ông Jesse James Garrett đưa ra và dùng lần đầu tiên vào tháng 2 nãm 2005 để chỉ kỹ thuật này, mặc dù các hỗ trợ cho Ajax đã có trên các chương trình duyệt từ 10 nãm trước. Ajax là một kỹ thuật phát triển web có tính tương tác cao bằng cách kết hợp các ngôn ngữ:

  • HTML (hoặc XHTML) với CSS trong việc hiển thị thông tin
  • Mô hình DOM (Document Object Model), được thực hiện thông qua JavaScript, nhằm hiển thị thông tin động và tương tác với những thông tin được hiển thị
  • Đối tượng XMLHttpRequest để trao đổi dữ liệu một cách  không đồng bộ với máy chủ web. (Mặc dù, việc trao đổi này có thể được  thực hiện với nhiều định dạng như HTML, văn bản thường, JSON và thậm chí EBML, nhưng XML là ngôn ngữ thường được sử dụng).
  • XML thường là định dạng cho dữ liệu truyền, mặc dầu bất cứ định dạng  nào cũng có thể dùng, bao gồm HTML định dạng trước, văn bản thuần  (plain text), JSON và ngay cả EBML.

Giống như DHTML, LAMP hay SPA,  Ajax tự nó không phải là một công nghệ mà là một thuật ngữ mô tả việc  sử dụng kết hợp một nhóm nhiều công nghệ với nhau. Trong thực tế, các  công nghệ dẫn xuất hoặc kết hợp dựa trên Ajax như AFLAX cũng đã xuất hiện.

So sánh với các ứng dụng web truyền thống

Tập tin:Tương tác trong AJAX.jpg

Tương tác đồng bộ trong ứng dụng web truyền thống (trên) và dị bộ trong ứng dụng AJAX

Hiểu nôm na: Điểm khác biệt cơ bản nhất của công nghệ này là việc  xử lý thông tin được thực hiện trên máy yêu cầu dịch vụ thay vì trên máy  xử lý yêu cầu dịch vụ như cách truyền thống. Máy xử lí yêu cầu dịch vụ  chỉ làm một việc đơn giản là nhận thông tin từ máy khách và trả các dữ  liệu về cho máy khách. Máy yêu cầu dịch vụ xử lý sơ bộ thông tin của  người dùng nhập vào, sau đó chuyển về máy xử lí yêu cầu dịch vụ rồi nhận  dữ liệu từ máy xử lí yêu cầu dịch vụ và xử lý để hiển thị cho người  dùng.

Các ứng dụng Ajax phần lớn trông giống như thể chúng được đặt trên  máy của người sử dụng hơn là được đặt trên một máy phục vụ thông qua  Internet. Lý do: các trang được cập nhật nhưng không nạp lại (refresh) toàn bộ. "Mọi thao tác của người sử dụng sẽ gửi mẫu của một lời gọi JavaScript tới bộ xử lý (engine) Ajax thay vì tạo ra một yêu cầu HTTP (HTTP request)", Jesse James Garrett  đã ghi như vậy trong bài luận đầu tiên định nghĩa về thuật ngữ này.  "Mọi đáp ứng cho thao tác của người sử dụng sẽ không cần truy vấn tới  máy phục vụ – ví dụ như việc kiểm tra một cách đơn giản sự hợp lệ của dữ  liệu, sửa đổi dữ liệu trong bộ nhớ và thậm chí một vài thao tác duyệt  trang – bộ xử lý Ajax tự nó đảm nhận trách nhiệm này. Nếu bộ xử lý cần  gì từ máy phục vụ để đáp ứng – như khi nó gửi dữ liệu để xử lý, tải về  bổ sung các mã giao diện hay nhận về dữ liệu mới – nó sẽ thực hiện các  yêu cầu tới máy phục vụ một cách không đồng bộ, thông thường sử dụng  XML, mà không làm gián đoạn sự tương tác của người sử dụng với ứng dụng  web".

So sánh ứng dụng web truyền thống (trái) với AJAX
Adaptive Path

Các ứng dụng truyền thống về bản chất là gửi dữ liệu từ các form,  được nhập bởi người sử dụng, tới một máy phục vụ web. Máy phục vụ web  sẽ trả lời bằng việc gửi về một trang web mới. Do máy phục vụ phải tạo  ra một trang web mới mỗi lần như vậy nên các ứng dụng chạy chậm và "lúng  túng" hơn.

Mặt khác, các ứng dụng Ajax có thể gửi các yêu cầu tới máy phục vụ  web để nhận về chỉ những dữ liệu cần thiết, thông qua việc dùng SOAP hoặc một vài dịch vụ web dựa trên nền tảng XML cục bộ khác. Trên máy thân chủ (client),  JavaScript sẽ xử lý các đáp ứng của máy chủ. Kết quả là trang web được  hiển thị nhanh hơn vì lượng dữ liệu trao đổi giữa máy chủ và trình duyệt  web giảm đi rất nhiều. Thời gian xử lý của máy chủ web cũng vì thế mà  được giảm theo vì phần lớn thời gian xử lý được thực hiện trên máy khách  của người dùng.

Có thể xem xét một website nhiếp ảnh cho phép người sử dụng nhập các  tiêu đề như một ví dụ về cách làm việc của Ajax. Với một ứng dụng web  truyền thống, toàn bộ trang web bao gồm cả các ảnh cần được nạp lại. Với  các công nghệ Ajax, DHTML có thể thay thế chỉ những đoạn tiêu đề và kết  quả là người dùng có những giao dịch "mượt mà" đáng quan tâm.

Ưu nhược điểm

Ưu điểm

  • Trong nhiều trường hợp, các trang web chứa rất nhiều nội dung thông  thường trong trang. Nếu sử dụng các phương pháp truyền thống, những nội  dụng đó sẽ phải nạp lại toàn bộ với từng yêu cầu. Tuy nhiên, nếu sử dụng  Ajax, một ứng dụng web có thể chỉ yêu cầu cho các nội dung cần thiết  phải cập nhật, do đó giảm lượng lớn băng thông và thời gian nạp trang.[1][2]
  • Việc dùng các yêu cầu không đồng bộ (asynchronous request) cho phép giao diện người dùng của ứng dụng hiển thị trên trình duyệt giúp người dùng trải nghiệm sự tương tác cao, với nhiều phần riêng lẻ.[3]
  • Việc sử dụng Ajax có thể làm giảm các kết nối đến server, do các mã kịch bản (script) và các style sheet chỉ phải yêu cầu một lần.[3]

Nhược điểm

  • Các trang web được tạo động không được ghi vào bộ lưu lịch sử lướt web của trình duyệt, do đó nút "back" (quay lui)  của trình duyệt sẽ mất tác dụng quay lại trang thái trước đó của trang  sử dụng Ajax, thay vào đó sẽ quay lại trang web trước đó mà người dùng  ghé thăm. Để khắc phục có thể dùng các IFrame  không hiển thị để gây ra sự thay đổi trong lịch sử trình duyệt và thay  đổi phần neo của URL (bằng mã a #) khi chạy Ajax và theo dõi những sự  thay đổi của nó.[3]
  • Việc cập nhật các trang web động cũng gây khó khăn cho người dùng trong việc bookmark (đánh dấu địa chỉ yêu thích) một trạng thái nào đó của ứng dụng. Cũng có những các khắc phục cho vấn đề này, một số trong đó sử dụng mã xác định đoạn (fragment identifier) URL (phần URL ở sau dấu ‘#’) để lưu vết, và cho phép người dùng đánh dấu và quay lại một trạng thái nào đó của ứng dụng.[3]
  • Do hầu hết các web crawler  không thực thi mã JavaScript, các ứng dụng web sẽ cung cấp một phương  thức thay thế để truy cập nội dung thông thường được truy cập bằng Ajax,  để cho phép các máy tìm kiếm lập chỉ mục chúng.[4]
  • Bất kỳ người dùng nào có trình duyệt không hỗ trợ Ajax hay  JavaScript, hoặc đơn giản là đã bị vô hiệu hóa JavaScript, sẽ đương  nhiên không thể sử dụng Ajax.[4] Tương tự, các thiết bị như điện thoại di động, PDA, và thiết bị đọc màn hình (screen reader)  có thể không hỗ trợ JavaScript hay đối tượng XMLHttp được yêu cầu.  Ngoài ra, các thiết bị đọc màn hình nếu có thể sử dụng Ajax đi nữa cũng  vẫn có thể không đọc chính xác các nội dung động.[5]
  • Chế độ same origin policy (chế độ gốc đơn điệu) có thể không cho phép sử dụng Ajax thông qua các tên miền,[6] mặc dù W3C đã có một đồ án sơ thảo để cho phép điều này.[7]
  • Việc thiếu các chuẩn cơ bản của Ajax đồng nghĩa với việc không có  nhiều sự chọn lựa thực tiễn tốt nhất để kiểm tra các ứng dụng Ajax. Các  công cụ kiểm thử cho Ajax thương không hiểu các mô hình sự kiện, mô hình  dữ liệu và giao thức của Ajax.
  • Mở ra một các thức khác cho việc tấn công của các đoạn mã độc mà những nhà phát triển web có thể không kiểm thử hết được. [8]

Các trình duyệt hỗ trợ Ajax

Nguồn: Wikipedia

Last modified on December 9th, 2020 at 1:44 am

Nam Le
lequocnam



2 responds

  1. svfuns says:

    cũng hơi hay hay[emot]grin[/emot][emot]grin[/emot]

  2. le.qnam says:

    hơi hay hay. phải nói là hay chứ [emot]question[/emot]

Leave a Reply

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.