Chuyên đề thực tập Tìm hiểu về AJAX và xây dựng Website ứng dụng AJAX
CHƯƠNG 1 : TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu về cơ sở thực tập
Công ty VDC-Net2E là công ty hàng đầu trong lĩnh vực cung cấp các dịch
vụ trực tuyến. Công ty VDC-Net2E được thành lập bởi các sáng lập viên: Công
ty Điện toán và Truyền số liệu (VDC) trực thuộc Tổng Công ty Bưu chính Viễn
thông Việt Nam, Công ty TNHH Kalet, Công ty TNHH Thiết bị bảo vệ và Điện
tử tin học Việt Anh và Công ty Cổ phần Điện tử, Công nghiệp và Hoá Chất Việt
Nam...
Các lĩnh vực hoạt động chính của Công ty bao gồm: + Dịch vụ Giải trí
trực tuyến
+ Dịch vụ Gia tăng giá trị trên mạng Internet
+ Thương mại điện tử
+ Dịch vụ tư vấn và thiết kế các phần mềm máy tính …
Công ty VDC- Net2E đã và đang phát hành 2 sản phẩm giải trí trực tuyến,
game online :
+ Con đường tơ lụa (www.conduongtolua.com.vn)
+ Ongame – Thiên đường giải trí (www.ongame.com.vn), cổng game
portal số 1 tại Việt nam hiện nay.
Silkroad luôn được coi là những bước đột phá trong làng Game Online
Hàn Quốc khi được công bố năm 2004.
Các game thủ yêu thích Silk Road không chỉ vì đồ hoạ đẹp, cách chơi hay
mà còn chứa đựng những giá trị về văn hoá và lịch sử thế giới. Chính vì thế mà
trong năm 2005, game này đã liên tiếp đoạt 2 giải thưởng Nội dung điện tử xuất
sắc của Bộ Thông tin - Viễn thông Hàn Quốc (9/2005) và Giải Công nghệ và
Sáng tạo trong liên hoan Game Hàn Quốc do Bộ Du lịch - Thông tin Hàn Quốc
tổ chức (10/2005).
Mục tiêu của VDC- Net2E là sẽ trở thành công ty hàng đầu trong lĩnh vực
giải trí trực tuyến, chiếm lĩnh thị phần học tập và giải trí trực tuyến trong nước
và hội nhập Quốc tế.
Công Ty: Công ty VDC-Net2E
không phải là các vấn đề khó khăn, và trang Web lúc đầu chỉ để thông tin về các
sự kiện, địa chỉ, hay lịch làm việc qua Internet mà thôi, chưa có sự tương tác qua
các trang Web. Năm 1990, Tim Berners-Lee, tại CERN, đã sáng chế ra HTML
(Hyper Text Markup Language), ngôn ngữ đánh dấu siêu văn bản. HTML rất
Dương Minh Đức CQ470604 CNTT- K47
2
Chuyên đề thực tập Tìm hiểu về AJAX và xây dựng Website ứng dụng AJAX
đơn giản và dễ dùng, và nó trở thành một ngôn ngữ rất phổ biến và cơ bản. Tuy
nhiên, không lâu sau đó, nhu cầu về các trang Web động, có sự tương tác ngày
một tăng, chính vì thế sự ra đời các công nghệ Web động là một điều tất yếu.
Sau đây là một số công nghệ Web động cơ bản:
CGI
Giải pháp đầu tiên để làm các trang Web động là Common Gateway Interface
(CGI). CGI cho phép tạo các chương trình chạy khi người dùng gửi các yêu cầu.
Giả sử khi cần hiển thị các các mục để bán trên Web site – với một CGI script ta
có thể truy nhập cơ sở dữ liệu sản phẩm và hiển thị kết quả. Sử dụng các form
HTML đơn giản và các CGI script, có thể tạo các “cửa hàng” ảo cho phép bán
sản phẩm cho khách hàng qua một trình duyệt. CGI script có thể được viết bằng
một số ngôn ngữ từ Perl cho đến Visual Basic. Tuy nhiên, CGI không phải là
cách an toàn cho các trang Web động. Với CGI, người khác có thể chạy chương
trình trên hệ thống. Vì thế có thể chạy các chương trình không mong muốn gây
tổn hại hệ thống. Nhưng dù vậy, cho đến hôm nay thì CGI vẫn còn được sử
dụng.
Applet
Tháng 5/1995, John Gage của hãng Sun và Andressen (nay thuộc Netscape
Communications Corporation) đã công bố một ngôn ngữ lập trình mới có tên
Java. Netscape Navigator đã hỗ trợ ngôn ngữ mới này, và một con đường mới
cho các trang Web động được mở ra, kỷ nguyên của applet bắt đầu.
Applet cho phép các nhà phát triển viết các ứng dụng nhỏ nhúng vào trang Web.
Khi người dùng sử dụng một trình duyệt hỗ trợ Java, họ có thể chạy các applet
ứng dụng phía server. Servlet cũng đồng thời phục vụ các CGI script. Servlet là
Dương Minh Đức CQ470604 CNTT- K47
4
Chuyên đề thực tập Tìm hiểu về AJAX và xây dựng Website ứng dụng AJAX
một bước tiến lớn, nó đưa ra một thư viện hàm API trên Java và một thư viện
hoàn chỉnh để thao tác trên giao thức HTTP. JavaServer Page (JSP) là một công
nghệ lập trình Web của Sun, cùng với nó là một công nghệ khác của Microsoft -
Active Server Pages (ASP), JSP là công nghệ đòi hỏi một trình chủ hiểu được
Java.Microsoft đã nghiên cứu các nhược điểm của servlet và tạo ra ASP dễ dàng
hơn để thiết kế các trang web động. Microsoft thêm các bộ công cụ rất mạnh và
sự tích hợp rất hoàn hảo với các Web server. JSP và ASP có những nét tương
đương vì chúng đều được thiết kế để phân tách qua trình xử lí khỏi quá trình
biểu diễn. Có sự khác biệt về kỹ thuật, song cả hai đều cho phép các nhà thiết kế
Web tập trung vào cách bố trí (layout) trong khi các nhà phát triển phần mềm thì
tập trung vào các kỹ thuật lập trình logic.
Tất nhiên Microsoft và Sun không độc quyền ở các giải pháp phía server. Còn
có các công nghệ khác, trong đó phải kể đến là PHP (Hypertext Preprocessor)
cho tới Cold Fusion. Các công nghệ này cung cấp các bộ công cụ rất mạnh cho
các nhà phát triển.
Flash
Năm 1996, FutureWave đã đưa ra sản phẩm FutureSplash Animator. Sau đó
FutureWave thuộc sở hữu của Macromedia, và công ty này đưa ra sản phẩm
Flash. Flash cho phép các nhà thiết kế tạo các ứng dụng hoạt họa và linh động.
Flash không đòi hỏi các kỹ năng lập trình cao cấp và rất dễ học. Cũng giống như
các nhiều giải pháp khác Flash yêu cầu phần mềm phía client. Chẳng hạn như
gói Shockwave Player plug-in có thể được tích hợp trong một số hệ điều hành
hay trình duyệt.
DHTML
Khi Microsoft và Netscape đưa ra các version 4 của các trình duyệt của họ, thì
các nhà phát triển Web có một lựa chọn mới: Dynamic HTML (DHTML).
6
Chuyên đề thực tập Tìm hiểu về AJAX và xây dựng Website ứng dụng AJAX
hiệu quả. Khi bổ sung World Wide Web (năm 1990), Tim Berners-Lee cũng
nhằm mục tiêu tạo phương tiện cho phép người dùng tự do đưa thông tin lên
Internet và dễ dàng chia sẻ với mọi người (trình duyệt web đầu tiên do Berners-
Lee viết bao gồm cả công cụ soạn thảo trang web). Tuy nhiên, sau đó web đã
phát triển theo hướng hơi khác mục tiêu ban đầu.
Tuy có một số ngoại lệ nhưng thế giới Web 1.0 (thế hệ web trước Web 2.0) chủ
yếu gồm các website “đóng” của các hãng thông tấn hay các công ty nhằm mục
đích tiếp cận độc giả hay khách hàng hiệu quả hơn. Nó là phương tiện phát tin
hơn là phương tiện chia sẻ thông tin. Chỉ đến gần đây, với sự xuất hiện của
nhiều kỹ thuật mới như blog (hay weblog), wiki… web mới trở nên có tính cộng
đồng (và cộng tác) hơn và trở nên gần hơn với sự kỳ vọng và khả năng thực sự
của nó.
Khái niệm Web 2.0 đầu tiên được Dale Dougherty, phó chủ tịch của O’Reilly
Media, đưa ra tại hội thảo Web 2.0 lần thứ nhất do O’Reilly Media và
MediaLive International tổ chức vào tháng 10/2004. Dougherty không đưa ra
định nghĩa mà chỉ dùng các ví dụ so sánh phân biệt Web 1.0 và Web 2.0:
“DoubleClick là Web 1.0; Google AdSense là Web 2.0. Ofoto là Web 1.0;
Flickr là Web 2.0. Britannica Online là Web 1.0; Wikipedia là Web 2.0. v.v…”.
Sau đó Tim O’Reilly, chủ tịch kiêm giám đốc điều hành O’Reilly Media, đã đúc
kết lại 7 đặc tính của Web 2.0:
1. Web có vai trò nền tảng, có thể chạy mọi ứng dụng
2. Tập hợp trí tuệ cộng đồng
3. Dữ liệu có vai trò then chốt
4. Phần mềm được cung cấp ở dạng dịch vụ web và được cập nhật không
ngừng
5. Phát triển ứng dụng dễ dàng và nhanh chóng
6. Phần mềm có thể chạy trên nhiều thiết bị
Dương Minh Đức CQ470604 CNTT- K47
Text Markup Language), ngôn ngữ đánh dấu siêu văn bản. HTML rất đơn giản
và dễ dùng, và nó trở thành một ngôn ngữ rất phổ biến và cơ bản.115
Web động ra đời cho phép các nhà phát triển , các lập trình viên nhanh chóng sử
dụng nó như một công cụ để tương tác với bên người dùng. Web động với chức
năng tương tác hai chiều giữa người viết và người đọc đã tạo nên một làn sóng
mới, mở ra một tương lai đầy hứa hẹn cho Internet . Nhiều người đã hi vọng
rằng các ứng dụng Web sẽ phát triển thay các phần mềm chạy độc lập trên máy
tính client đơn lẻ ( các ứng dụng offline PC ). Quả thật, với sự phát triển chóng
mặt của mạng Internet cùng với những ưu điểm của các ứng dụng Web (truy cập
tại mọi nơi, không cần nâng cấp nhiều về phía máy sử dụng,…), tương lai của
các phần mềm chắc chắn sẽ gắn chặt với các ứng dụng Web, nếu không muốn
nói là có thể sẽ bị thay thế. Tuy nhiên, cho đến giờ, hy vọng đó vẫn chưa được
đáp ứng một cách triệt để bởi một số điểm đặc trưng của ứng dụng Web lại
chính là những giới hạn tưởng chừng như không thể vượt qua nổi. Đó chính là
cách thức mà người dùng và ứng dụng Web tương tác với nhau.
2.1.3 AJAX là gì ?
JavaScript, ngôn ngữ lập trình chạy trên trình duyệt đã quá quen thuộc với
thế giới web kể từ khi Netscape phát minh ra nó. Sự phát triển của công nghệ và
nhu cầu người sử dụng ngày càng cao buộc các nhà phát triển tạo ra một kĩ thuật
khác cho phép xử lý các tác vụ phức tạp hơn. Tháng 2/2005, trên Internet bắt
đầu lan truyền thuật ngữ Ajax như là một kỹ thuật mới cho ứng dụng web.
Những thành công vang dội và sự hấp dẫn kì lạ của Gmail, Google Suggest và
Google Maps đã khiến cho Ajax được chú ý một cách đặc biệt.
Dương Minh Đức CQ470604 CNTT- K47
9
Chuyên đề thực tập Tìm hiểu về AJAX và xây dựng Website ứng dụng AJAX
Ajax là viết tắt của Asynchronous JavaScript and XML - kỹ thuật kết hợp
hai tính năng mạnh của JavaScript được các nhà phát triển đánh giá rất cao:
• Gửi yêu cầu (request) đến máy chủ mà không cần nạp lại trang
• Phân tách và làm việc với XML
Mô hình cổ điển :
và
AJAX
Dương Minh Đức CQ470604 CNTT- K47
11
Chuyên đề thực tập Tìm hiểu về AJAX và xây dựng Website ứng dụng AJAX
Rõ ràng điểm khác biệt là thay vì phải tải cả trang Web thì với AJAX
trình duyệt phía người dùng chỉ cần tải về phần của trang Web mà người dùng
muốn thay đổi. Điều này giúp cho ứng dụng Web phản hồi nhanh hơn, thông
minh hơn.
Ngoài ra, điểm đặc biệt quan trọng trong công nghệ AJAX nằm ở chữ A
(Asynchronous) – không đồng bộ – tức là người dùng cứ gửi yêu cầu của mình
tới server và quay lại với công việc của mình mà không cần chờ trả lời. Khi nào
server xử lý xong yêu cầu của phía người dùng, nó sẽ báo hiệu và người dùng có
thể “thu nhận lấy” để thể hiện những thay đổi cần thiết. Vậy tất cả cơ chế này
hoạt động thực sự thế nào? AJAX cho phép tạo ra một AJAX Engine nằm giữa
giao tiếp này. Khi đó, các yêu cầu gửi (resquest) và nhận (response) do AJAX
Engine thực hiện. Thay vì trả dữ liệu dưới dạng HTML và CSS trực tiếp cho
trình duyệt, Web server có thể gửi trả dữ liệu dạng XML và AJAX Engine sẽ
tiếp nhận, phân tách và chuyển hóa thành XHTML + CSS cho trình duyệt hiển
thị.
Việc này được thực hiện trên client nên giảm tải rất nhiều cho server, đồng thời
người sử dụng cảm thấy kết quả xử lý được hiển thị tức thì mà không cần nạp lại
trang. Mặt khác, sự kết hợp của các công nghệ Web như CSS và XHTML làm
cho việc trình bày giao diện trang Web tốt hơn nhiều và giảm đáng kể dung
lượng trang phải nạp. Đây là những lợi ích hết sức thiết thực mà AJAX đem lại.
Chúng ta sẽ xem xét cụ thể các thành phần cấu thành AJAX, nguyên lý hoạt
động và việc sử dụng Javascript kết nối chúng trong phần tiếp theo.
2.1.3 Một số ứng dụng AJAX
Atlas: Ajax kiểu Microsoft
Cả Google Reader và Remember the Milk đều đưa ra phương thức hỗ trợ offline
đơn giản như nhau. Bạn chỉ việc nhấn vào một biểu tượng mũi tên màu xanh lá
trên thanh công cụ ở đầu màn hình để tải về hoặc đệm dữ liệu mà bạn cần làm
việc offline. Một khi đã đồng bộ dữ liệu, bạn có thể ngắt kết nối và vẫn tiếp tục
làm việc, thậm chí nếu bạn đóng và mở lại trình duyệt. Khi có kết nối trở lại,
bạn nhấn vào biểu tượng mũi tên màu xanh dương ở cùng vị trí cũ và những
thay đổi của bạn ánh xạ lại vào bản trực tuyến.
Milk cũng gặp vấn đề tương tự. Xóa một tác vụ ở chế độ offline thì bạn không
có cách nào để phục hồi lại tác vụ đó mặc dù bạn có thể dễ dàng undo hành
động đó ở chế độ online.
Dương Minh Đức CQ470604 CNTT- K47
14
Chuyên đề thực tập Tìm hiểu về AJAX và xây dựng Website ứng dụng AJAX
Dù sao đi nữa, khi chạy offline với một ứng dụng Gears thì bạn nên lên kế hoạch
sử dụng. Bạn đừng hy vọng có thể bắt đầu công việc trong Reader mà không có
kết nối ban đầu. Với những ứng dụng Gears hiện thời bạn cần kết nối ban đầu và
chuyển tất cả chúng sang chế độ offline trước khi ngắt kết nối. Đây có thể là tùy
chọn tốt để đồng bộ tự động bất cứ khi nào bạn online.
Cho đến web Mail mạnh mẽ :
YAHOO MAIL
Yahoo Mail đưa ra những tính năng giống với một chương trình thư điện tử trên
máy tính, ví dụ có đầy đủ các phím tắt quen thuộc và khả năng dùng phím và để
chọn cùng lúc nhiều thư. Dù chỉ là bản thử nghiệm beta nhưng ứng dụng này
khá đẹp mắt và mạnh. Giao diện với vùng 3 cửa sổ tương tự như Outlook
Express của Microsoft và Thunderbird của Mozilla.
Yahoo Mail cũng bắt chước tính năng tab có trong nhiều trình duyệt, cho phép
mở nhiều thư trong một cửa sổ duy nhất và chuyển qua lại giữa chúng mà không
cần mở thêm cửa sổ mới. Bạn cũng có thể nhanh chóng duyệt chi tiết hộp thư
đến Inbox nhờ vào thanh cuộn quen thuộc hoặc phím .
Công cụ tìm kiếm của Yahoo Mail khá ấn tượng, "sờ" đến cả tập tin đính kèm
không còn được phát triển tiếp. Người ta đã thay thế nó bằng XHTML.
Dùng HTML động hoặc Ajax, có thể được tạo ra và xử lý bởi số lượng lớn các
công cụ, từ một chương trình soạn thảo văn bản đơn giản – bạn có thể gõ vào
ngay từ những dòng đầu tiên – cho đến những công cụ xuất bản WYSIWYG
phức tạp.
Dương Minh Đức CQ470604 CNTT- K47
16
Chuyên đề thực tập Tìm hiểu về AJAX và xây dựng Website ứng dụng AJAX
HTML nói chung tồn tại như là các tập tin văn bản chứa trên các máy tính nối
vào mạng Internet. Các file này có chứa thẻ đánh dấu, nghĩa là, các chỉ thị cho
chương trình về cách hiển thị hay xử lý văn bản ở dạng văn bản thuần túy. Các
file này thường được truyền đi trên mạng internet thông qua giao thức mạng
HTTP, và sau đó thì phần HTML của chúng sẽ được hiển thị thông qua một
trình duyệt web, một loại phần mềm trực quan đảm nhiệm công việc đọc văn
bản của trang cho người sử dụng), phần mềm đọc email , hay một thiết bị không
dây như một chiếc điện thoại di động.
Tạo lập trang Web = HTML là chỉ cần đánh văn bản của bạn vào rồi chèn thêm
các ký hiệu đánh dấu, gọi là thẻ có dạng như sau:
<TAG>văn bản chịu tác động</TAG> Phần thẻ là một mã (thường chỉ có một
hoặc hai chữ) xác định hiệu ứng mà bạn yêu cầu. Ví dụ, cho thẻ nét đậm là <B>.
Cho nên nếu bạn muốn câu “Tìm Hiểu AJAX” xuất hiện theo kiểu chữ đậm
(bold), bạn phải đưa dòng sau đây vào tài liệu của mình:
<B>“Tìm Hiểu AJAX” </B>
Thẻ đầu tiên báo cho trình duyệt (browser) hiển thị tất cả phần văn bản tiếp theo
bằng phông chữ đậm, liên tục cho đến thẻ <B>. Dấu gạch chéo (/) xác định đó là
thẻ kết thúc, và báo cho trình duyệt ngưng hiệu ứng đó.
HTML có nhiều thẻ dùng cho nhiều hiệu ứng khác, bao gồm chữ nghiêng (italic),
dấu đoạn văn bản (paragraph), tiêu đề, tên trang, liệt kê, liên kết, và nhiều thứ
nữa.
HTML động hay DHTML : (viết tắt tiếng Anh: Dynamic HTML) là một thể
định kiểu dáng (chữ đậm, chữ in nghiêng, chữ có gạch chân, chữ màu...), khiến
mã nguồn của trang web được gọn gàng hơn, tách nội dung của trang web và
định dạng hiển thị, dễ dàng cho việc cập nhật nội dung.
Tạo ra các kiểu dáng có thể áp dụng cho nhiều trang web, giúp tránh phải
lặp lại việc định dạng cho các trang web giống nhau.
CSS giúp tiết kiệm được rất nhiều thời gian và công sức cho việc thiết kế
web.
Style trong phiên bản HTML 4.0 qui định cách thức thể hiện các thẻ.
Style thường được lưu trong các file nằm ngoài trang web. Chúng giúp thay đổi
cách thức định dạng và cách bố trí các trang web chỉ bằng cách thay đổi riêng
file CSS.
CSS cho phép điều khiển cách định dạng và cách bố trí của cùng lúc
nhiều trang web với chỉ duy nhất một lần thay đổi tại một vị trí.
Có thể định nghĩa nhiều style vào một thẻ HTML . CSS cho phép đưa các
thông tin định nghĩa thẻ thông qua nhiều con đường khác nhau. Style có thể
được qui định ở trong chỉ một thẻ HTML, được qui định trong một trang web
hoặc ở trong một file CSS bên ngoài.
Thứ tự áp dụng các định dạng Như trên đã nói, có thể sử dụng nhiều cách
khác nhau để làm CSS. Điều gì sẽ xảy ra nếu áp dụng nhiều cách định dạng cho
một thẻ HTML? Theo một cách chung nhất ra có thể nói các style sẽ được "xếp
tầng" (cascade). Việc xếp tầng này tuân theo thứ tự ưu tiên giảm dần như sau:
* Inline Style (Style được qui định trong một thẻ HTML cụ thể)
* Internal Style (Style được qui định trong phần <HEAD> của một trang
HTML)
Dương Minh Đức CQ470604 CNTT- K47
18
Chuyên đề thực tập Tìm hiểu về AJAX và xây dựng Website ứng dụng AJAX
* External Style (style được qui định trong file CSS ngoài)
* Browser Default (thiết lập mặc định của trình duyệt)
Cú pháp của CSS gồm ba thành phấn:
như vậy đòi hỏi toàn bộ nội dụng của một văn bản phải được phân tích và lưu
trong bộ nhớ. Vì thế, DOM được sử dụng tốt nhất trong các ứng dụng mà trong
đó các thành phần của tài liệu có thể được truy xuất và thao tác một cách ngẫu
nhiên. Với các ứng dụng dựa trên XML, bao gồm yêu cầu đọc/ghi có chọn lọc
cho mỗi lần phân tích (one-time selective read/write per parse), DOM cho thấy
được sự tối ưu về mặt bộ nhớ. Trong các trường hợp đó thì giao diện lập trình
ứng dụng SAX trở nên rất tiện lợi về cả mặt tốc độ và bộ nhớ.
Các phiên bản mô hình DOM được xếp theo cấp độ hay bậc (level). Hiện tại thì,
bản chi tiết kĩ thuật hiện hành của DOM đang ở cấp độ 2. Tuy vậy một số ở bản
mô tả chi tiết kĩ thuật cấp độ 3 đang là khuyến khích sử dụng của W3C.
Cấp độ 0
Bao gồm mọi chi tiết DOM theo qui định của từng nhà phát triển riêng biệt
tồn tại trước khi DOM cấp độ 1 ra đời. Ví dụ: document.images,
document.forms, document.layers, và document.all. Chú ý: đây là mô tả chi tiết
kĩ thuật chính thức bởi W3C hơn là một tham khảo đến những thứ tồn tại trước
khi xảy ra quá trình chuẩn hóa.
Cấp độ 1
Cách duyệt qua tài liệu (cấu trúc cây) của DOM (HTML và XML) và thao tác
nội dung (bao gồm việc thêm thành phần). Các thành phần riêng cho HTML
cũng được đưa vào.
Cấp độ 2
Hỗ trợ không gian tên XML, khung nhìn có lọc (filtered views) và các sự kiện
DOM.
Cấp độ 3
Nhằm nâng cao các khả năng của DOM, cấp độ 3 chứa 6 bản mô tả chi tiết kĩ
thuật khác nhau: 1) the DOM Level 3 Core; 2) the DOM Level 3 Load and Save;
3) the DOM Level 3 XPath; 4) the DOM Level 3 Views and Formatting; 5)
DOM Level 3 Requirements; and 6) the DOM Level 3 Validation.
2.2.4 XML HTTP REQUEST
Các ứng dụng web truyền thống đều phải tái nạp toàn bộ trang web khi
// Khởi tạo một đối tượng XMLHttpRequest
Var request = new XMLHttpRequest() ;
// XMLHttpRequest là một đối tượng trong các trình duyệt như Mozilla , Opera ,
Chrome v.v…
Nhưng trong IE nó lại là một activeX. Do vậy ta cần kiểm tra xem việc khởi tạo
có thành công không
Để chắc chắn việc tạo một XMLHttpRequest :
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else {
if (window.ActiveXObject) {
Dương Minh Đức CQ470604 CNTT- K47
21
Chuyên đề thực tập Tìm hiểu về AJAX và xây dựng Website ứng dụng AJAX
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) { }
}
}
if (xhr) {
xhr.onreadystatechange = showContents;
xhr.open("GET", url, true);
xhr.send(null);
}
else {
alert("Lỗi request không được khởi tạo có thể trình duyệt của bạn
không hỗ trợ tác vụ này.");
}
chúng ta cần ngắt bỏ cache của trình duyệt. điều này có thể thể hiện bằng 3 cách.
Dùng Pragma:no-cache hoặc Cache-Control: must-revalidate
1. setRequestHeader(“Pragma” , “no-cache”)
2. Trong file checkname.php có thể đặt hàm Header(“Pragma: no-cache”)
3. Đặt một request tring random cho URL
myNocache = parseInt(Math.random()*9999999999)
xhr.open(“GET” , “checkname.php?name=” + name + “&nocache=” +
myNocache , true )
Thuộc tính của đối tượng XMLHttpRequest
Thuộc tính Y nghĩa
Onreadystatechange Dùng để đáp ứng một công việc nào đó
khi thuộc tính ReadyState thay đổi
readyState Nhận 5 giá trị tương ứng với 5 trạng thái:
0 : Chưa được khởi tạo ( Uninitialized )
1 : Đang được nạp ( Loading )
2 : Đã nạp xong ( Loaded )
3 : Tương tác ( Interactive )
4 : Hoàn thành ( Complete )
ResponseText Dữ liệu trả về dạng string thuần
ResponseXML Dữ liệu trả về dạng XML
Status Mã trạng thái HTTP Response
StatusText Thông điệp trả về dạng chuỗi thông báo
kém thêm mã trạng thái HTTP Response
Hàm callback()
Dương Minh Đức CQ470604 CNTT- K47
23
Chuyên đề thực tập Tìm hiểu về AJAX và xây dựng Website ứng dụng AJAX
xhr.onreadystatechange = Tên hàm;
Ta vừa thực hiện gán một hàm sẽ liên tục được gọi khi thuộc tính readystate
biến đổi. Hãy xem hàm này nên làm gì. Đầu tiên, hàm cần kiểm tra trạng thái
500 - Server Error Máy chủ gặp sự cố.
Dương Minh Đức CQ470604 CNTT- K47
25