ThS. NGUYỄN NAM THUẬN
và nhóm tin học thực dụng
Hưởng
o dẫn tư
• học
ế
a
®
Ề
a
m
ắ
H
Ậ
©
P
v
m
ìm
y
Sách dành cho tất cả những ai quan tâm đến JavaScript, mong muốn
tnục hiện đuỢc, mọi khứ /ối JavaScript, nhất là thêm các thành phần
tương lác vào các trang web cá nhân của minh
>
Sách õề cụp óến những k/úa cạnh miết yếu của các ngôn ngữ lạp
trình như các câu lệnh. đối tượng, và các kiểu dữ liệu
>
Hưổng d ẫ u cách
ú d i h ụp JavaSeiipî. v à o mộl w e b site, sử dụng
JavaScript với Document Object Model, các eveni trình duyệt, các
frame và 'veb form
>
Với các chủ điểm JavaScript nâng cao như gỡ rối một chương trình
JavaScript, phát hiện mã Ici, và liên kết ''ôi các đối tượng khác được
nhúng trong mộl trang web
NHÀ XUẤT BẢN
THÔNG TIN VÀ TRUYỀN THÔNG
Chưởng 1: Chuẩn bị để lập trình bằnq JavaScript
PHẦN í
Hoc những điểm cơ bản về
JavaScript
Chiứýng 1 : Chuẩn bị đ ể lập trình
bằng J a va S crip t
Chương 2: Học những điểm cơ
bản về J a va S crip t
Chương 3: Sử dụng cá c c la ss
J a va S crip t c à i sẵ n
Chương 4 : TỔchức dữ liệii thành
cá c mảng
7
Chương 1: Chuẩn bị để lập trình bằng JavaScript
8
Chuẩn bị để lộp trình bòng
JavaScript
T ro n g chư ơ ng n à y bạn sẽ học n h ữ n g đ iểm c h ín h sau đây:
B Chọn một môi tnỉờng phát triển
ỄỄ Học nbữnq gì JavaScript cỏ thể và không thề thực biện
M Quyết định phiêti bản lĩèiO của JavaScript đ ề sủ dụng
B Test các chương trình JavaScript sứ dụng HTML
R Sử dụnq thẻ HTML
B Tạo một template JavaScript bằng Microsoft Notepad
B Giao tiếp với người dùng
ằng sau mọi bộ phim th àn h công có một người ở hậu trường
chi phối sự tương tác của các diễn viên, n h ân viên điều khiển
camera, tác giả kịch bản và những th à n h viên ê kíp khác.
Đây chính là đạo diễn và mặc dù bạn không th ậ t sự thấy người này trên
m àn hình, nhưng chất lượng của bộ phim phụ thuộc vào sự th à n h công
của những nỗ lực của người này.
Đ
JavaS cript là "đạo diễn" đằng sau hậu trường của nhiều web site
Internet. Công việc của nó là chi phối sự tương tác của các đối tượng và
sự kiện sao cho cả hai tương tác trơn tru với nhau. Nói chung, web site
Chưởng 1: Chuẩn bi để lập trình bằng JavaScript
9
càng phức tạp th ì nó càng phụ thuộc vào JavaS cript đạo diễn. Ánh sáng!
Camera! T rình duyệt! Diễn!
Có lẽ câu hỏi đầu tiên cần được hỏi về JavaScript là, nó là gì? Câu trả
lòi đơn giản n h ất là JavaScript là một ngôn ngữ lập trìn h đơn giản, được
sử dụng chủ yếu để mang sự tương tác đến các web site. Nó thường đươc
gọi là ngôn ngữ viết script (kịch bản) nhưng nó cũng có một dạng không
viết script.
Một script trong th u ật ngữ lập trìn h là một chương trìn h không cần
được biên dịch để chạy. Các script cần thực hiện một tác vụ riêng biệt và
sau đó th o át và thường không có một giao diện người dùng đồ họa (GUI)
để nói đến. JavaScript, Perl và VBScript là những ngôn ngữ viết script
phổ biến n h ấ t được sử dụng bởi các web site Internet.
Tìm hiểu lịch sử của JavaScript
Jav aS cript được sinh ra do nhu cầu cộng tác các tran g web (H ypertext
M arkup Language) với nội dung nhúng chẳng h ạn như các applet Java.
Nhưng Jav aS crip t được sử dụng cho nhiồu điều hơn thế. Nó còn dược sử
dụng để giúp những người đùng điền vào các form, cung cấp sự tương tác
\*eb sk e thúng qjfi L á c meixU dộng và cung cấp nàng lượng cho các
shopping cart (giỏ mua sắm) thương mại điện tử (e-commerce). T h ật ra,
người ta nói rằn g 25% trong tấ t cả web site ngày nay sử dụng JavaScript
bằng m ột cách này hoặc cách kia.
T h ủ ỉh o V
Măc dù hầu hết (99.5% hoâc nhiều hơn) ohầp mềm di'ypt Web ctarn» sử dim",
ngày nay có sẵn sự hỗ trợ cho JavaScript, nhưng người dùng có thê chọn tát sự
hỗ trợđó. Khi thiết kế các web site cho mọi người thấy trên Internet, diều quan
Irọng la hãy r.hơ ràr.g mọt sô nguòri sẽ knông "thấy' JavaScript.
Xét về tốc độ thay đổi các công nghệ khác liên quan đến web để đưa
vào những tínìi năng mới, JavaScript đã khá 011 định. JavaScript đà m ất
8 nãin để tiễn triển từ phiên bản 1.5 ban đầu đến phiên bản chính tiếp
theo 2.0. Một số người cảm thây rằng tốc độ chậm nàv vừa là một điều
phúc lành vừa là một lời nguyền rủa cho ngôn ngữ.
Điều phúc làn h là sự hỗ trợ JavaScript khá n h ất quán qua nhiều nhà
tạo trìn h duyệt và số phiên bản. Các nhà phát triển Web có th ể thực thi
một chương trìn h JavaScript và không phái bận tâm quá nhiều về những
vấn đề khả n ăn g tương thích (ngoại trừ trá n h những kỹ th u ật viết mã
không tương thích n h ât định). JavaScript đã được chọn lựa sử dụng rộng
rãi như vậy chủ yếu vì các nhà phát triển có thể tin tưởng nó sẽ làm việc.
Lời nguyền rủa là trong khi JavaScript vẫn giậm chân tại chỗ, thì các
ngồn ngữ khác đã nổi lên để lấp đầy khoảng trống kỹ thuật. Ngày càng
có nhiều web site sử dụng Visual Basic Script (VBScript) hoặc Java
10
Chương 1: Chuẩn bị để lập trình bằng JavaScript
Server Pages (JSP) làm một ngôn ngữ viết script web phía server thay
vì JavaScript. T h ật ra, việc một phần mềm web server thông dụng được
tung ra gần đây (iPlanet Web Server) đã loại bỏ sự hỗ trự JavaScript.
Tuy nhiên, điều này có th ể thay đổi khi JavaScript2.0 thu hút sự chú ý
của các nh à p h át triển.
Nguồn gốc của JavaScript
Jav aS cript đã xuất hiện lần đầu tiên trong Netscape 2.0 vào năm
1995. Ban đầu JavaScript được th iết kế để giúp tích hợp các trang HTML
với các applet Jav a - ứng dụng Jav a được nhúng trong các trang web.
Các n hà p h át triển nhanh chóng nhận ra tiềm năng th ậ t sự của nó và
chẳng bao lâu JavaS cript đá được sử dụng để thèm khả năng tương tác
vào các web site - phần lớn thời gian không có sự trợ giúp của Java.
Hình 1.1 m inh họa Navigator 2.0, trìn h duyệt web được bật JavaScript
đầu tiên.
JavaScript xâm nhập vào Internet Explorer
Ngay sau khi Netscape Communications lần đầu giới thiệu JavaScript
trong trìn h duyệt N avigator 2.0 của nó, Microsoft đã nhận ra tầm quan
trọng của việc kết nhập ngôn ngữ này vào trìn h duyệt In tern et Explorer
của nó. Vì Netscape không chính xác sẽ gởi m ail cho Microsoft mã
nguồn và th ậm chí thông số’ ngôn ngữ là một bí m ật được bảo vệ tốt,
Microsoft đã buộc phải th iết kế đối chiếu JavaS cript để tạo phiên bản
riêng của nó. Microsoft đặt tên cho phiên bản của nó là Jscript, V Ị
Netscape đã sở hữu thương hiệu trên t ừ JavaScript.
Các phiên bản trước dó của Jscrip t đá không thực thi các ciiức náng
n h ấ t định theo chính xác cùng một cách như JavaS cript và do đó sự
không tương thích JavaS cript giữa các trìn h duyệt đã là điều mà các nhà
p h át triển thường phải xem xét khi viết script các tran g web của họ.
JavaScript trở thành một chuẩn chính thức
Trong những ngày đầu của Web, khả năng tương thích giữa các trình
duyệt đã là một vấn đề lớn - lớn hơn nhiều so với ngày nay. Hai công ty
trìn h duyệt chính đã có những thay đổi đối với các ngôn ngữ HTML và
JavaScript để cố đạt được một ưu th ế cạnh tran h với nhau, gây ra nhừng
cơn đau đầu lớn cho các nhà phát triển web cố tạo các trang web hỗ trợ cả
hai trìn h duyệt. May thay cả hai công ty này đã bớt căng thẳng hơn.
Netscape khôn ngoan chuyển sự chuẩn hóa JavaS cript sang hiệp hội
các n h à sản xuất m áy tín h châu Âu (ECMA) vào năm 1996. ECMA đã
tập trung vào việc chuẩn hóa ngôn ngữ cốt lõi nhưng để những thứ khác
(chẳng hạn như JavaScript Document Object Model hoặc DOM) cho những
nhà sản xuất trìn h duyệt. Kết quả là những sự không tương thích tiếp
tục tồn tại giữa các trìn h duyệt.
kị
11
trình bàng JavaScript
HHQ
ytsN cttcopc - fYahool)
P e r s o n a lứ ert
._ak,o!
v>« ÌVTjo•;
ci«fc
Search
. P*t>pkS»tf;-h • ".ity M>»pg - T nd a ÿ f N>.vs - SiocLChu>l*g - sperrt?
• A rts and H um anities
¿^t:iu.Vî£*ms»p*!CtQ|p!*imy,JjW
áfc'*?'•
• B u s in e ss an d K fo n o m v ^ tra ü
Ĩ:ỉĩ«ĩsntíĩ. ATuuttf,QiaaSfci*»I&4¿
• C om puter» ai.d I n te rn e t ỊXtia!)
!« :teì:.ẹt
'ỵ y / .Q
Ịỵ£.ỳiigì*&*
• Education
*ißOl$ti«LLẾLilLMẹ^iEyVy^ẹ
'V-Ì "V -/S
• N ew s and M e d ia rxtra!)
CitfT.ent Eyer.ts.M*,g*flr.rs. xỵ* N.fWijiftpjeii
• R p n q a d o n and Sports fXb?r
Spirts. ôtaitÿ. T :sv;i A.\*Ị>»C'UlJL'iS'i.i
• Hefcieure
* s *¿í£tí2?vv¡ií#
»' * ' .L*v ■*■£<
• Regional
^Püf.tru1,.Riflor.t-US
• Sriftnrfl
K n tp n a in m e iit (Xtra! ;
ăh [DocvmcdSm
s,-lilts
r r r v r r r 'g x r r t — ï î î
r~ ‘~
3SẼắ
hlnh 1.1 ũiện mạo của Web trong nàm 1995 qua con mắt của Navigator 2 .0.
ECMA đă p h át hàn h ngôn ngữ viết script được chuẩn hóa được gọi là
ECM AScript vào năm 1997. Họ cập n h ật chuẩn này hai lần trong hai
năm tiếp theo gọi các bản cập nhật là Edition 2 và Edition 3. JavaScript
1.5 phù hợp vrti Edition 3 của chuẩn
Vị ti í của JavaScript ngày nd)
Chuẩn ECMAScript Edition 4 sẽ ià bản cập nhật đầu tiên được tung
ra Irong hơn 4 nàm . JavaScript. ‘2.0 pnù họp với Edition 4 của chuẩn
ECM AScnpt, và sự khác biệt, giữa hai ấn bản này th ì cực kỳ nhó.
Q &
c
h
*
-------------- ---------------------------------------------------------------
ĩliônq số líij tliuột cho JavoScpipf 2 .0 c6 fhế được tìm thđy fpên web site
Mozilla.opq littp^vwww.mozillo.opq/js/lanquaqc/js 20/index.html.
Ngày nay Jav aS cript của Netscape và Jscrip t của Microsoft tuân theo
chuẩn ECMAScript, mặc dù mỗi ngôn ngữ vẫn hỗ trợ các tín h năng vôn
không phải là một phần của chuẩn đó.
Chưởng 1: Chuẩn bị để lập trình bằng JavaScript
12
Bảng 1.1 Trình ỉự thời gian của các phiẽn bản JavaScript
Các trình duyệt
Phiên bản
JavaScript
Ngày
phát hành
1.0
Tháng 12, 1995 Navigator 2.
Internet Explorer 3
Tháng 4, 1996 Navigator 3
1.1
1.2
Tháng 12, 1996 Navigator 4,
Internet Explorer 4
1.3
Tháng 8, x39S
1.4
1.5
2.0
Tuân th eo chuẩn
Không
Một phần, với
ECMAScript 1
Một phần, với
ECMAScript 1
Navigator 4.06,
Internet Explorer 5
Tháng 10, 1998 Phiên bản 1.4 đã
không xuất hiện
trong bất kỳ trình
duyệt web
Tháng 4, 2000 Navigator 6 và 7,
Internet Explorer 5.5
và 6, Mozilla 1
ECMÂScript i,
ISO-16262
2003
ECMAScript 4
ECMAScript 1,
ISO-16262
ECMAScript 3
B ảng 1.1 trìn h bày m ột d anh sách theo thứ tự thời g ian của các phiên
b ản Ja v a S c rip t bao gồm m ột danh sách ngắn các trìn h duyệt th ô n g dụnb
hỗ trợ nhau.
Q Ịx d í -
-------------------------------------------------------------------Mqdij phát hành ckínli xóc của JavaScript 2 .0 và các pliiên bản của các trìnli
dui^ệt vốn sẽ liỗ tpợ nó chưa dược quijết ẩịnli Uli sách nàij được viết.
C họn một môi trư ờng p h á t triể n
Một tro n g nhữ ng ưu th ế lớn n h ấ t của Ja v a S c rip t là nó hỗ trợ trê n
nhiều n ền khác nhau, thường cho những mục đích k hác nhau. Loại ứng
dụng Ja v a S c rip t phổ biến n h ấ t ngày nay là m ột ứng dụng chạy bên
tro n g m ột trìn h duyệt web dưới dạng m ột scrip t p h ía client. Từ lâu
Ja v a S c rip t cũng đã được hỗ trợ như là m ột ngôn ngữ p h ía web server,
tro n g các môi trư ờng phổ biến chẳng h ạn như IIS và LiveW ire. Từ đây
các n h à p h á t triể n th ậ m chí có nhiều lựa chọn hơn cho việc sử dụng
Ja v a S c rip t tro n g các môi trường khác nhau.
T rong p h ần n ày chúng ta sẽ xem Jav aS crip t được sử dụng tro n g từng
môi trường này như th ế nào. Những môi trường này chưa hỗ trợ JavaS cript
2 .0 , như ng điều quan trọ n g là hãy xem những môi trư ờng tiề m n ăn g m à
kể từ k hi hỗ trợ có lẽ sẽ được giới thiệu tro n g tương lai gần.
Chương 1: Chuẩn bi để lậo trình bằng JavaScript
13
P h ần này cũng sẽ thảo luận các môi trường p h á t triể n cho các nhà
p h á t triể n Jav aS crip t. Trong vài năm đầu Jav a S c rip t hiện hữu, các n h à
p h á t triể n đã phải tạo các chương trìn h Jav aS crip t của họ sử dụng chĩ
m ột bộ biên tậ p te x t m à không có sự trợ giúp của các môi trường p h át
triể n tích hợp (IDE). Nhưng khi các công cụ HTML p h á t triển , nhiều
người đã th ém sự hỗ trợ p h át triển cho ngôn ngữ v iết script phổ biến
n h ấ t th ố giới Và ngày 1)11’ sự hỗ tro' đó hiện hữu tro n g tấ t cả công cụ lớn
như chúng ta sẽ th ấy sau trong phần này.
Phát triển các trang web được vận hành bằng JavaScript
Các ứng dụng m à được th iế t k ế để chạv bên trong m ột trìn h duyệt cho
đến bây giờ được sử dụng phổ biến n h ấ t cho Jav aS crip t. Jav aS crip t đã
đưực tích hựp rấ t m ạnh vào môi trường duyệt web thông qua DOM.
N etscape giới thiệu DOM gôíic trong Jav aS crip t 1.0.
Điều bạn cẩn biết
Sự tương tự phía client
Trcnçj cônc nghệ phát triển w e t, 'rình djyêt web ' à nr.áy t'n’ 1 mà r ó chạy
t r ê n đ ó t h ư ờ n g đ ư ợ c g ọ i là C lie n t. Tương tự , p h ầ n m ề m w e b s e r v e r v à m á y
tính mà nó chạy trên đó được gọi là server. Do đó thuật ngữ client-side
JavaScript (JavaScript phía C lie n t) ám chỉ đến các chương trình JavaScript
được nhúng bên trong một trang web và chạy trên máy C lie n t. JavaScript
chạy tren rráy &e-.'V3r đưọc gọi ià servei-s.díỉ Ja/sSonpt (Ja/aSoript pnía
server).
C hẳng bao lâu sau đó việc điều k hiển DOM đã được chuyển sang
World W iif 'Nìb Consortium (W3C , một tố ciiiic tiêu ohuẩn. Cnuẩn
DOM đá p h át triể n từ việc xử lý cách Jav aS crip t tương tác với m ột trìn h
duyệt đến việc xử iý các cách chuẩn để tao, đọc và chình sửa các tài liệu
HTML và XML.
Các ứng dụng Jav a S c rip t đã được th iế t k ế để chạy bên trong m ột
trìn h duyệt p h ải chịu m ột số h ạn chế an ninh. Những ứng dụng này
thường không truy cập ổ đĩa cứng của người dùng hoặc b ấ t kỳ ứng dụng
được cài đ ặ t trê n m áy tín h của người dùng. Đối với người dùng, điều này
14
Chương 1: Chuẩn bị để lập trình bằng JavaScript
có nghĩa là một ứng dụng JavaScript thường không gây ra rủi ro an ninh
vì nó không th ể chứa một vi rút hoặc mã độc hại khác.
Netscape N avigator 4.0 (còn được gọi là Communicator) đã giới thiệu
khái niệm về các signeđ script (các script có chữ ký). Một script đã được
ký sử dụng một key (khóa) số an toàn có thể yêu cầu thêm các đặc quyền
bên trong môi trường trìn h duyệt chẳng hạn như khả n ăn g gởi e-mail
hoặc đọc một file từ đĩa cứng. Trình duyệt thường nhắc người dùng để
hỏi họ có cho script đặc quyền như vậy hay không.
T rình duyệt web Mozilla và người họ hàng của nó, N avigator 6 đã
thay đổi cách script có chữ ký được xử lý bằng một cách không còn tương
thích với N avigator 4 íiữa. Mioioso?; IntcTiifet Explorer
xử lý an
ninh hoàn toan khác sử dụng cac trusttíd zone (các vùng tin cậy ỳ. Kết
quả của những giải pháp an ninh không đồng nhất, vẫn có các chuẩn để
viết các ứng dụng cho script vốn đã có những đặc quyền mở rộng. Thực
tế Jav aS cript được ký hiếm khi được sử dụng.
Sự p h át triển ứng dụng phía C lie n t vẫn là một trong những điểm
m ạnh cốt lõi của JavaScript. Các nhà p hát triển thực sự gặp rủi ro
không tương thích với nhiều hệ điều hành và trình duvệt web bằng việc
chọn b ấ t kỳ ngôn ngữ không phải JavaScript cho sự p h á t triển phía
Client của họ.
Tạo các ứhg dụng web dựa vào nền server
Mặc dù Jav aS cript chi phối tấ t cả ngôn ngữ khác khi nói về lập trình
web C lie n t, điều đó không phải là trường hợp với lập trìn h phía server.
JavaS cript đã lá một trong nnửng ngôn ngữ phía server đầu tiên được hồ
trợ (trở lại năm 1996, khi JavaScript tung ra nền web server của nó»,
nhưng nó đã không th ể sử dụng sự khởi đầu đó có theo hướng lợi cho nó.
P erl n h an h chóng trở th à n h một õôiig cụ viết script phía Client phổ biến
và một sô" ngôn ngữ khác đã nổi lên (bao gồm VBScript tro n g môi trường
ASP, PH P và JS P ) như là những lựa chọn được ưa thích.
Một trong những lý do các ngôn ngữ phía server th ay đổi rấ t nhiều là
môi trường server có th ể được điều khiển ở một mức độ n h ấ t định bời các
n hà p h át triển web. Trong hầu hết các trường hợp, các n h à p h át triển có
rấ t ít k h ả năn g điều khiển đối với những trìn h duyệt m à người ta s ử
dụng. Vì vậy tro n g k h i việc chọn ngôn ngữ lập trìn h p h ía Client th ậ t sự
là một quyết định "mẫu số chung nhỏ nhất" (ngôn ngữ nào được hỗ trợ
bởi hầu h ết các trìn h duyệt), sự lựa chọn trên server là b ấ t kỳ những gi
mà nh à p h át triển muốn sử dụng.
ĐỐI với một số nh à p h át triển, chọn ngôn ngữ lập trìn h giống như một
đứa trẻ trong một cửa hàng bánh kẹo. Có nhiều ngôn ngữ lập trìn h phía
Client để chọn lựa và không có lý do th ật sự để chọn cái này so với cái kia
ngoại trừ sở thích cá nhân.
Chường 1: Chuẩn bi để lập trình bằng JavaScript
15
Sứ dụng JavaScript trong một môi trường DOS hoặc Windows
Trong một khoảng thời gian dài, Microsoft đã cung cấp những công cụ
Windows Script Host (WSH) như là một add-on miễn phí cho Windows
dưới dạng một bản download từ web site của nó. WSH bao gồm những
phiên bản mới n h ất của hai ngôn ngữ viết script của Microsoft - VBScript
và Jscript.
Vời WSH, bạn có thé tạo một chương trìn h nho trong JS cript có thể
được chạy từ dòng nhắc DOS. T hật ra nhiều tác giả vi rút đã tận dụng
kh ả n ăn g này (cụ th ể với VBScript), do đó những macro và script nhỏ
này được sử dụng ít thường xuyên hơn ngày nay. T h ật ra nhiều hệ thống
m ail ngăn chặn chúng khi được gởi dưới dạng một phần đính kèm (at
tachm ent) vào em ail do khả năng có các vi rút.
Các nh à p h á t triển vấn có thể tạo những chương trìn h nho sử dụng
Jscript để dùng t^oag một môi truờng Windows mặc du điều này hiếin
khi được thực hiện. Những chương trình Jscrip t này phụ thuộc vào sự
hiện diện và việc kích hoạt môi trường viết script Windows và trong
những thời điểm ý thức về an ninh này, đó là điều mà bạn không th ể tin
cậy quá nhiều
Các công cụ phát triẻn JavaScript
Một ctoiig nhứr^g điểin mạnh OJ& »JavaScript la cáo côug cụ phác iriển
mở rộng thường không được yêu cầu. Với một bộ soạn thảo text (chẳng
hạn hh í Noteỉ.a -1 :ài sẳn V.ÌO W indow , ban c5 thể tírO n.ẵ JavaScript
tương đối phức tạp với một chút công sức. Vì nó là một ngôn ngữ biên
dịch bên trong ngữ cánh của một trình duyệt web, thậm chí bạn không
cần raua mội trin h biên dịch (compiler).
Nhưng việc bởi vì JavaScript có thể được biên tập trong một bộ biên
tập tex t đơn giản không có nghĩa là nó nên như vậy. Các môi trường
p h á t triển đưa ra một số nguồn tài nguyên chính thường làm cho việc
p h á t triển trở nên n h an h hơn và dễ dàng hơn chẳng h ạn như:
* Các script định nghĩa sản có thể dễ dàng được thêm vào một trang
web
Chương 1: Chuẩn bị để lập trình bằng JavaScript
16
B Sự trợ giúp tích hợp đ ề nhanh chóng dò tìm cú ph á p của m ột hà m
B Tự động upload FTP lên một iveb server
B Các công cụ gỡ rối tích bợp
P hần này sẽ xem xét bốn bộ biên tập HTML hàng đầu. Từng bộ biên tập
này có sự hỗ trợ đáng kể cho việc phát triển JavaScript bao gồm các script
sẵn sàng sử dụng, các công cụ biên tập JavaScript và sự trợ giúp nhúng.
Microsoft FrontPage
M icrosoft đã p h á t triể n m ột bộ biên tập HTML phổ biến được gọi là
F rontP age. F rontP age cung cấp cho các nhà p h á t triể n web m ột số' công
cụ Jav a S c rip t dể hỗ trợ tro n g việc tạo môt web site tương tác. Trước đây
Jav a S c rip t đã là công cụ dẫn đầu được thừa n h ận trong các công cụ phát
triển HTM L và Jav aS crip t. Bây giờ hai đối thủ cạnh tra n h khác trong
lĩnh vực này đã lấy m ột phần đáng kể của thị phần Microsoft - Macromedia
và N etO bjects.
F rontP age vẫn chứa nhiều tính năng hữu dụng bao gồm các k h ả năng
chẳng h ạ n như th iế t k ế hệ thống phân cấp của m ột web site trước khi tạo
bất kỳ tran g , cấu hìn h an ninh web site, xác lập các style toàn site và tạo
các ản h b an n er tùy ý. H ình 1.2 m inh họa cách F rontPage E xplorer có thể
được sử dụng như th ế nào để tổ chức một web site bằng cách liên kết các
tran g lại với nhau bằng đồ họa. Microsoft F rontPage cũng có m ột thành
phần (component) phía server được gọi là FrontPage S erver Extensión,
cho phép nó tích hợp tốt vào web server IIS của Microsoft.
F ro n tP ag e có th ể mua với giá 90 đô la đến 170 đô la làm cho I1Ó trở
th à n h m ột công cụ có giá r ẫ t phải chăng cho những n h à p h á t triển web
site không chuyên.
Q
L d a
------------------------------------------------------------------------------M icro so ft đưa pa một pkiên bđn P ro n lP a q e 2 0 0 2 dùng thủ 3 0 n q áij. C D
dùnq thủ có thế được ềđnq ký từ hitp://www. rnicrosoft.com/fpontpaqe.
Macromedia Dreamweaver M X
M acromedia D ream w eaver MX là một bộ biên tập HTML và JavaScript
r ấ t thông dụng tro n g giới p h á t triển web chuyên nghiệp. Nó chứa đầy
các tín h n ăn g bao gồm k h ả năng biên tập hầu h ết các ngôn ngữ lập trìn h
web se rv e r (như ASP, J S P và PHP), cung cấp m ột sô" th à n h phần
Jav a S c rip t tạo sẵn tiệ n lợi, tích hợp các cơ sở dữ liệu, và tu ân theo các
chuẩn mới chẳng h ạn n h ư XHTML và XML. Tóm lại nó bao gồm nhiều
th ứ tố t m à các chuyên gia sẽ th ấ y hữu dụng, như n g n h iều người dùng tạ i
gia có th ể không đòi hỏi.
Chương 1: Chuẩn N 1ê’ l?p tr;nh hằng JavaScript
17
H H E3
*£ h o n ip a g e b p ltx e i • My New W eb |hllp //1ocaího8t/(nỹpftì|ec0
£(8 yèw ioob ftefc)
DìJ«wP«oeị
3 vjfc
f^ E U fe h
&% *?* X rin '■
ỉ
0
Views
’S
r^Hocri *
jgygn^Av
I
Schedule
M embei*
C ổ rtsn U oí
Staius
Aichfve
Se*ch
Diseưssans
y » p :ỈA õ c J h í* ỉJ ftw tÌK !t
N a m e ___
I T i tl e _______
Sg»l Type
1 pifVrti^
I ModfedDatg
M odified S y
I Corrrnenti
d
lokfe■otóc
_ J anay.-t
*10^ V eb • Aicw*a
Q j x c h v e h .m
Q j D eJ^u i him
3)c*cv*>YÌ
knobafti htm
4kB
him
Hoơ«
1KB
him
r oje.: V b •• ^t$c 4JW. u
U.J
■rxHuded A ltele Fooler NX...
353
jn
him
3/¿1/0¿: 12:36.14 PM
9/21/0212.5618 PM
Sc o tt Dufly
V 2 ./02 z * s > u * i
S« 0« - ully
9/21/02 12:56.14 PK»
Sc o tt D iiiy
SeoN Dufly
zf 1
Hình 1.2 Sử dụng Frontpage Explorer để ỉổ chức một web site.
Sức m ạnh của môi trường 1''reamweaver MX đượr m inh h ọ a trong
h ìn h 1.3.
Giá bán le của Macromedia Dreamweaver MX là khoảng 200 đô đến
400 đô la, điều này làm cho nó trở tbành môt. côrtíỊ oụ lv t,ưởpg cho cá«'
n h à phat, trien chuyen nghiệp.
Bgn
có íh ế download mộf bân iw w y v i i
' »Co4»
Iitfa it < i n ỉ u . l M t a ;
1.»
■♦
»*» ü A n l f
MI ♦
^onvw^pvax'-wxJOtcF
A
o
i
t<
!B3S5 3 G C-Í^33____ _
J
•V • • A
|. .»CAO-.
ÍFru”
ÚĨT
'BI
5«eeo4
w
ÍA2
rtw c
AJ
B'<
rv. idk. V—>♦ Sế»._____
•Vo ì 0« ^ «j.3
"jj
o ••H»it*dOK»wwwSI»F
ỄƠỊĨĨ^^.Si.*"-'
írér.*
*^¿J Cié*»«.
Hình 1.3 Dreamweaver MX là một mồi trường làm việc tuyệt hảo cho nhà phát triển
web chuyên nghiệp.
Với giá 29 đô la đến 99 đô la, người dùng nhận được m ột bộ biên tập
HTML và Jav aS cript để quản lý tốt web site cá nhân của họ. Những
người dùng có các site lớn để quản lý hoặc nhiều nhà p h át triển có thể
muốn xem xét đầu tư thêm tiền để mua Dreamweaver thay vào đó.
CỊ&Á.
----------------------------------------------------------------M acrom edia cỏ một plìiên txỉn dùnq flit} cúa Hom eSite 5 dùng cho W in d o w s tọi
k tfp //www.macpomcdia.com/sofíware/liomesitc
Adobe GoLive
Adobe nổi tiếng đối với người lướt web trên In tern et vì phần mềm
Acrobat của nó viết và đọc các tài liệu bằng định dạng Portable Docu
m ent Form at (PDF) thông dụng. Tuy nhiên, Adobe cũng là m ột người
dẫn đầu trong phần mềm đồ họa, video kỹ thuật số và chế bản văn
phòng với các sản phẩm Photoshop, Premiere và PageM aker của nó.
Thực tế có th ể tấ t cả công cụ và các gói phần mềm hàng đầu công
nghiệp khác m à công ty sản xuất làm lu mờ việc kinh doanh công cụ
xuất bản web của họ. Tuy nhiên, mặc dù Adobe GoLive có th ể theo đuôi
những người khác trong nhiều khía cạnh, nhưng đối với những n h à phát
Chướng 1: C iLẩ t, bị 3ể lí';p tr'nl, tằ.ig J.ivaSciip;
19
triển thường xuvên làm việc với các công cụ biên tập đồ họa và video của
Adobe, GoLive có thể là một lựa chọn dễ dàng.
NetObjects Fusion
FrontPage, Dreamweaver, GoLive và NetObjects Fusion tạo nên 4
công cụ p h át triển web site hàng đầu thông dụng n h ấ t hiện nay. Thật
không may, NetObjects đã không có đủ tài chính hoặc nguồn lực để tiếp
tục trụ lại trong cuộc đua với những đôì thủ cạnh tra n h khắc nghiệt như
vậy. Còng ty đã được bán và chủ sở hữu mới, Web site Pros đã tiếp tục
p h át triển công cụ Fusion với tên nhản hiệu hiện có.
Fusion có giá cạnh tran h từ 70 đô la đến 100 đô la. Nó bao gồm nhiều
tín h năng mới thú vị chẳng hạn như tích hợp VỚI các aịch vụ th an h toán
trực tuyến th ô n g dụng, các m»ru pop-up JavaS cript vè sự hỗ trọ cải tiến
cho đa phương tiện (multimedia) nhúng. Trước đây nó đã là công cụ
thông dung với các nhà phát triển và có thể trở th àn h loại như vậy với
sự hướng dẫn mới.
Tìm hiểu những gì JavaScript có thể và không thể thực hiện
Về m ặt lịch sử JavaScript đã tự phàn biệt với những ngôn ngữ khác
bằng những cách sau đáy:
0 Nó dễ dàng phát triển
B NÓ giao tiếp tốt với cức ngôn nqũ trì môi trteờng khác
B Không đòi hỏi các côníị cụ hoặc trình biên dich (lặc biệt hoặc bộ
biên dịch đặc biệt
B NÓ linh hoại
Những đặc tín h này làm cho nó đặc biệt thích hợp cho việc p h át triển
web. Các tra n g web có th ể được làm cho động với tôi thiểu một dòng mã
Jav aS cript và thường chỉ đòi hỏi một số dòng để hoàn th à n h các tác vụ
thông thường. DOM cung cấp sự truy cập JavaS cript cho trìn h duyệt,
tran g web và tấ t cả dối tượng (Java, multimedia...) nhúng bên trong nó.
20
Chương 1: Chuẩn bị để lập trình bằng JavaScript
B ất kể những cải tiến đáng kể, JavaS cript 2.0 đã không được th iế t kế
như là một ngôn ngữ đa năng. Cụ thể nó không có ý định thách thức với c ,
C++ hoặc Jav a trong các lĩnh vực nơi mà những ngôn ngừ đó hiện chi
phối. Thay vào đó Jav aS cript 2.0 cố cải thiện tốt hơn những ưu th ế của
ngôn ngữ hiện có đồng thời bổ sung các tín h năng m à các nhà phát triển
thường muốn sử dụng k hi phát triển m ã lớn hoặc m ã phức tạp đó là:
B Khả năng viết các ứng dụng module và ứng clụng hướng đối tượng
M Khả năng giao diện cải tiến với các ngôn ììgũ' lập trình khác
u Khả năng viết các script vốn có th ể được biên dịch đ ể thực thi nhanh
bơt:
B Khả năng giới hạn các hàm va má duợc sử dựng
ECMA đã thực sự th iết kế JavaScript với những mục đích này trong đầu
Sử dụng JavaScript làm một ngôn ngữ phía client
Một tro n g những đặc tín h độc đáo của thông số Jav a S c rip t cốt lõi là
nó không cố định n ghĩa cách JavaS cript tương tác với môi trường của
nó. Không có các phương thức hoặc hàm Jav a S c rip t trong thông sô" này
định n ghĩa cách vẽ giao diện người dung hoặc cách viết text lên m àn
hình. Tương tự, không có các thường trìn h nbập / xuất file cho phép
ngôn ngữ truy cập ổ đĩa cứng.
T ính năn g đó có th ể được xem vừa là m ột ưu điểm vừa là một khuyết
điểm. Sự linh h o ạt m à việc thiếu một giao diện I/o chuẩn náy đã dần
đến việc Jav a S c rip t được sử dụng trong nhiều môi trường khác nhau (các
trìn h duyệt, server, ứng dụng độc iập, th iế t bị di động...). Điều này đã eho
phép những th iế t bị có những cách lưu trữ dứ ìiệu khác nhau và những
cách h iển th ị k ế t quả khác nhau dể chạy các ứng (lụng JavaS cript.
Khuyết điểm của sự lin h hoạt này là cùng một ứng dụng JavaS cript
không th ể được chạy tro n g mỗi môi trường m à không có m ột sự thay đổi
nào đó. Trong khi hầu h ế t các trìn h duyệt web đã chuẩn hóa trên một
mô h ìn h đối tượng tà i liệu, vẫn có m ột số điểm khác b iệt giữa các DOM
của những n h à sản x u ất trìn h duyệt khác nhau. Ví dụ, m ột ứng dụng
Jav aS crip t được th iế t k ế để chạy trong m ột trìn h duyệt web có th ể
không chạy được trê n m ột web server m à không xem xét mô h ìn h đối
tượng riên g của server đó.
Ngày nay thực tế Jav aS crip t là ngôn ngữ viết script duy n h ấ t được sử
dụng bên trong các tra n g web. Mặc dù có m ột sô" lựa chọn khác (đáng chú
ý n h ấ t là (VBScript), nhưng JavaS cript đã (và vẫn) là ngôn ngữ viết
script duy n h ấ t được hỗ trợ bởi tấ t cả n h à sản xuất trìn h duyệt lớn. Nó
là ngôn ngữ viết scrip t duy n h ất đáng được học cho việc p h á t triể n phía
client.
Chưởng 1: Chuẩn bị để lập trình bằr.g JavaScript
21
Sử dụng JavaScript làm một ngôn ngữ phía server
Jav aS crip t cũng được ưa thích một phẩn như là một ngôn ngữ lập
trinh web server. Cả Netscape Enterprise Server và Microsoft IIS (các
web server thông dụng giữa những năm 1990) đã hỗ trợ việc phát triển
Jav aS crip t phía server. Netscape đã hỗ trợ điều này thông qua ngôn ngữ
phía server LiveWire. Microsoft đã cho phép JavaS cript như là một
trong những ngôn ngữ tiồ ri uếng :ho việc phát triển ASP.
T h ậ t không may, Netscape E nterprise Server (bây giờ được gọi là
iP lan et Web server) không còn hỗ trợ JavaScript trên server nữa, bắt
đầu với phiên bản 6 . Điều này có th ể liên quan đến việc JavaS cript là
một p h ần của iPlanet của Sun Microsystems và Sun M icrosystems thích
các n h à lập trìn h sử dụng Java hơn.
Mặc dù môi trường Microsoft ASP đã thành công rấ t lớn, nhưng các
nh à p h á t triển thích sứ dụng VBScript hơn khi p h át triển cho nền đó.
Với việc giới thiệu nền ASP.NET của Microsoft, VB.NET và C# đã trở
th àn h hai ngôn rigữ mà các nhà phát triển sử dụng nhiều nhâ't.
Microsoft. >iâ có m Ịt ƯJ ŨÍ:Ĩ1 nhó cho cộng đồng JavaScript, kh* nó đ ia
sự hỗ trợ JS cript.N E T vào môi trường phát triển Visual Studio.NET.
JS cript.N E T có sự truy cập đên tá t cá class (iớp) cúa .NET Fram ework
và là sự thực th i (mặc dù cực kỳ sớm) đầu tiền hỗ trợ các tính năng của
đề xuất ECMAScript Edition 4.
Mặc dù ECMA đã cho JavaScript khả năng hoạt động như một ngôn
ngứ lập ín n n đáy đủ, nhưng JavaScript không n h ấ t th iế t tních hợp cho
mọi moi trường Có lê bạn không muôn sử dụng JavaS cript là một ngón
r g » ì ’ ậ o * ;r'n h c h o c 1 c l o ạ ' t á r ’’Ụ S"ÌL' đ â T*:
B Các ứniị dụng rất lớn
u Các linỵ dụng qỉtini trọng và bicu Sĩiấi
B C.ác driver thiết bị và những chương trình cấp tbấp khác
Q uyết định phiên b ản nào của JavaScript đ ể sử dụng
Một quyết, định mà các nhà phát triển JavaScript phải thực hiện sớm
trong tiến trìn h p h át triển là phiên bản nào của ngôn ngữ mà họ muốn
hỗ trợ. Một số yếu tố nằm trong quyết định này chẳng hạn như:
t Kích cỡ và phạm vi của tác
VXỊL
lập trình đang có
B Khả năng cải tiến trong tương lai cho lập trình
KỄ Việc cần chương trình dễ dàng liên vận hành với những chương
trình khác được viết bằng các ngôn ngữ lập trình khác nhau
B Việc Cần tận dụng những tính năng mới chỉ được đưa ra trong
JavaScript 2.0 (vi dụ các đổi tượng cài sẵn mới)
22
Chương 1: Chuẩn bị để lập trình bằng JavaScript
R Phiên bản cửa JavaScript được hỗ trợ bởi công cụ phát triển ưa thích
B Phiên bản của JavaScript được hỗ trợ hởi đa số khá n giả mục tiêu
Cho đến bây giờ vấn đề cân nhắc quan trọng nhất là vấn đề sau cùng.
Đ ặt JavaS cript 2.0 bên trong các trang web sẽ không có ích lợi gì nếu
một lượng k h án giả đáng kể mục tiêu vẫn sử dụng các trìn h duyệt không
hỗ trợ nó. Dĩ nhiên nếu chương trình sẽ thường trú chỉ trê n server (một
chương trìn h phía server), tấ t cả những gì quan trọng là phiên bản được
hỗ trợ bởi server.
Điều cũng quan trọng là cần ghi nhớ một trong những qui tắc cơ bản
của lập trìn h máy tính: không bao giờ viết nhiều mã hơn mức độ hoàn
tí à .1 cần th iế t cho một tác vụ. Do đó nếi: chơưng ir lih JavaS cript là một
script ba dòng chuyển đổi các độ c thành các độ F thì không cần tạo các
package (gói) và class (lớp) trong cú pháp JavaScript 2 (như được thảo
luận trong chương 5). Có thể bạn muốn làm điều này vì những lý do khác
bao gồm k h ả năng mở rộng của chương trình trong tương lai, Nhưng đây
cũng là một trường hợp "nếu nó không bị hỏng thì đừng sửa nó".
Do đó theo qui tắc chung hãy th ậ t cẩn th ận về việc p h át triển trong
mã JavaS cript 2.0 phía client nếu khán giả chỉ định của bạn sẽ có thể
chạv nhiều trìn h duyệt web khác nhau. Nếu không chắc chắn bạn biết
phiên bản trìn h duyệt tối thiểu sẽ là gì hoặc p hát triển trong một môi
trường server hoặc môi trường nhúng, hãy thoải mái sử dụng các tính
năng và những cải tiến mới trong JavaScript 2.0.
Test các chương trình JavaScript sử dụng HTML
Trước khi nhảy vào những điểm cơ bản của JavaScript, chúng ta cần
th iết lập một cách để test mã. Cách dễ n h ât đế test một chương trìn h
JavaS cript là bằng cách đặt nó bên trong một trang HTML và tải nó vào
một trìn h duyệt dược b ậ t JavaScript.
Để chạy b ấ t kỳ mẫu mã trong sách này sử dụng phương thức HTML,
bạn sẽ cần một trìn h duyệt web. Bạn nên sử dụng IE 5 hoặc Navigator
4 và một số ứng dụng sẽ không làm việc với các phiên bản trước.
Nếu bạn muôn nâng cấp trìn h duyệt trên máy tính lên th à n h một
phiên bản gần đây hơn, bạn có thể ghé thăm web site của Microsoft tại
http://www.microsoft.com/windows/ie hoặc Netscape Browser C entral tại
http://channels.netscape.com /ns/browsers.
Tạo một template JavaScript
Thẻ