markdown:
# HTML & CSS: The Complete Reference- P15
Chia sẻ: Thanh Cong | Ngày: | Loại File: PDF | Số trang:50
lượt xem 5
download
![](http://image.tlvnimg.com/document/thumbnail/2010/20100802/xmen/80x100/pg0701_8253.jpg)
##
HTML & CSS: The Complete Reference- P15
[Vui lòng tải xuống để xem tài liệu đầy đủ](javascript:void(0);)
Download
![](http://static.tlvnimg.com/b2013az/templates/version1/default/images/down16x21.png)
Tham khảo tài liệu 'html & css: the complete reference- p15', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Bình luận(0)
[Đăng nhập để gửi bình luận!](javascript:void(0);)
##
Nội dung Text: HTML & CSS: The Complete Reference- P15
- 676 Part II: Core Style Note • Under IE this property is known as –ms-layout-grid-char to correctly show it is an extension. layout-grid-line This Microsoft-proposed CSS property defines the gridline value used for laying out Japanese or Chinese characters in a Web document. Syntax layout-grid-line: none | auto | length | percentage where length is any positive length unit and percentage is a value derived from the size of the parent element the rule is applied to. Example A short text sample with line breaks so the meaning of this property will be obvious. Compatibility No specification IE 5+ Note • Under IE this property is known as –ms-layout-grid-line to correctly show it is an extension. layout-grid-mode This Microsoft-proposed CSS property defines whether the text layout grid uses one or two dimensions. Syntax layout-grid-mode: both | none | line | char where line specifies to use a line grid, char specifies to use a character grid, and both specifies to use both grids. A value of none turns all grids off. The default is both. Example A short text sample with layout-grid-mode set to a value of none to turn off the grid. Compatibility No specification IE 5+
- Chapter 6: CSS3 Proprietary and Emerging Features Reference 677 Note • Under IE 8+ this property is known as –ms-layout-grid-mode to correctly show it is an extension. layout-grid-type This Microsoft-proposed CSS property defines the type of grid to be used for laying out Japanese or Chinese characters in a Web document. Syntax layout-grid-type: fixed | loose | strict PART II where fixed is used for a monospace font layout, strict is used for most complex ideographic character types, and loose is used for more alphabetic types like hiragana in Japanese. Example A short text sample would likely be in Chinese, not English. Compatibility No specification IE 5+ Note • Under IE 8+ this property is known as –ms-layout-grid-type to correctly show it is an extension. line-break This property defines line-breaking rules for Asian text. Syntax line-break: normal | strict Example p {line-break: normal;} Compatibility No specification Chrome 1+, IE 5+, Safari 2+ Notes • Under IE 8+ this property is known as –ms-line-break to correctly show it is an extension. Under WebKit-based browsers this is called –webkit-line-break since Safari 3.0 and –khtml-line-break since Safari 2.0. • This property is deprecated according to Microsoft documentation and should be replaced by word-break per the upcoming CSS3 specification.
- 678 Part II: Core Style marquee-direction This property specifies the direction in which a marquee should move. Syntax marquee-direction: forward | reverse See the notes for proprietary equivalents. Example ABCDEFGHIJKLMNOPQRSTUVWXYZ Compatibility CSS3 Chrome 1+, Opera 8+, Safari 2+ Notes • The default value is forward. • This property can be replicated by using the HTML tag and setting the direction attribute to left | right | up | down. • The property was supported under Safari 2 as –khtml-marquee-direction. • This property is supported as -webkit-marquee-direction in Safari 3+. The syntax is -webkit-marquee-direction: ahead | auto | backwards | down | forwards | left | reverse | right | up • This property is supported as -wap-marquee-dir in Opera. The syntax is -wap-marquee-dir: ltr | rtl • According to the standard, the actual direction of the marquee movement will depend on the overflow-style and direction of text flow in the document according to Table 6-10. overflow-style Direction Value Forward Direction Reverse Direction marquee-line ltr Left Right rtl Right Left marquee-block Up Down TABLE 6-10 Marquee Direction Logic
- Chapter 6: CSS3 Proprietary and Emerging Features Reference 679 Of course, if the marquee-style is set to alternate, the directions will flip back and forth. marquee-play-count This property defines how many times the marquee runs. Syntax marquee-play-count: positive number | infinite Example ABCDEFGHIJKLMNOPQRSTUVWXYZ Compatibility CSS3 Chrome 1+, Opera 8+, Safari 2+ Notes • This property is replicable in many browsers using a tag. • The default value is 1, meaning the element performs its effect once. • This property can be replicated using the HTML marquee tag and setting the loop attribute to a number or infinite. • This property is supported as -webkit-marquee-repetition in WebKit-based browsers like Safari. It’s also known as -khtml-marquee-repetition in Safari 2.0. In these browsers, the default is infinite. If it is not set to infinite, the element will disappear after it completes the loops. • This property is supported as -wap-marquee-loop in Opera browsers. • For some reason, you may see a browser stop the marquee effect after a certain number of iterations regardless of setting. marquee-speed This property defines how fast the marquee scrolls. Syntax marquee-speed: fast | normal | slow Example
- 680 Part II: Core Style overflow-style: marquee-line; width: 100px; -webkit-marquee-speed:fast; -wap-marquee-speed: fast; marquee-speed:fast;"> ABCDEFGHIJKLMNOPQRSTUVWXYZ Compatibility CSS3 Chrome 1+, Opera 8+, Safari 2+ Notes • This property is replicable in many browsers using a tag. • The default value is normal. • The property is supported as –webkit-marquee-speed in Safari 3+ and -khtml- marquee-speed in Safari 2.0. • In Safari, there is an additional format: -webkit-marquee-speed: distance / time • The property is supported as –wap-marquee-speed in Opera browsers. marquee-style This property defines the motion of the marquee. Syntax marquee-style: alternate | scroll | slide where alternate causes the marquee to bounce back and forth, scroll causes the marquee to scroll completely off of one end before reappearing on the other end, and slide causes the marquee to reset as soon as all of the content is visible. Example ABCDEFGHIJKLMNOPQRSTUVWXYZ Compatibility CSS3 Chrome 1+, Opera 8+, Safari 2+
- Chapter 6: CSS3 Proprietary and Emerging Features Reference 681 Notes • This property is replicable in many browsers using a tag. • The default value is scroll. • This property can be replicated using the HTML marquee tag and setting the behavior attribute to alternate | scroll | slide. • This property is supported as -webkit-marquee-style in Safari 3+ and –khtml- marquee-style in Safari 2. • This property is supported as -wap-marquee-style in Opera. PART II mask This property defines a mask to be used as a box’s overlay in order to clip the box to a complex shape. This is a shorthand property for the more specific mask properties. Syntax mask: mask-attachment, mask-clip, mask-image, mask-repeat, mask-composite, mask-box-image; where each value corresponds to the more specific property. Example O NLINE http://htmlref.com/ch6/mask.html
- 682 Part II: Core Style Compatibility No specification Safari 3.1+ Note • In WebKit-based browsers this property is –webkit-mask. mask-attachment This property specifies whether the mask should scroll or stay fixed when the page is scrolled. Syntax mask-attachment: fixed | scroll where the mask will scroll with the page on scroll and will not move on fixed. Example Compatibility No specification Chrome 2+, Safari 3.1+ Note • In WebKit-based browsers this property is –webkit-mask-attachment. mask-box-image This property specifies an image to be used as a mask over the border box of an element. Syntax mask-box-image: [url() | function()] top right bottom left x_repeat y_repeat where url is the location of the image, function is a function that generates an image, top, right, bottom, and left specify the distances from the edges of the image, and x_repeat and y_repeat can be set to repeat, stretch, or round to indicate how the image is altered to fit the dimensions. Example Compatibility No specification Chrome 2+, Safari 3.1+ Note • In WebKit-based browsers this property is –webkit-mask-box-image.
- Chapter 6: CSS3 Proprietary and Emerging Features Reference 683 mask-clip This property specifies whether the mask clips to the border, padding, or content. Syntax mask-clip: border | padding | content where the mask clips to the specified option. Example PART II mask-clip Example div {height: 50px; width: 150px; float: left; margin: 20px; padding: 20px; background-color: red; font: bold xx-large; border: 15px solid black; -webkit-mask-image: url(starmask.png); -webkit-mask-repeat: repeat; -webkit-mask-size: 20px 20px;} content border padding O NLINE http://htmlref.com/ch6/maskclip.html Compatibility No specification Chrome 2+, Safari 3.1+ Note • In WebKit-based browsers this property is –webkit-mask-clip.
- 684 Part II: Core Style mask-composite This property specifies the compositing style for the mask. Syntax mask-composite: border | padding where the default is border. Example Compatibility No specification Chrome 2+, Safari 3.1+ Note • In WebKit-based browsers this property is specified as –webkit-mask-composite. mask-image This property specifies the image to be used for the element’s mask. Syntax mask-image: url(image) | function where function is a function that generates an image. Example O NLINE http://htmlref.com/ch6/maskimage.html
- Chapter 6: CSS3 Proprietary and Emerging Features Reference 685 Compatibility No specification Chrome 2+, Safari 3.1+ Note • In WebKit-based browsers this property is –webkit-mask-image. mask-origin This property specifies how the position of the mask should be calculated by setting the origin relative to different locations within an element’s box. PART II Syntax mask-origin: border | content | padding where the mask will be anchored to the upper-left corner of the element’s border, content, or padding based on the specified option. Example Compatibility No specification Chrome 3+, Safari 4+ Notes • In WebKit-based browsers this property is –webkit-mask-origin. • If mask-origin is set to padding and mask-clip is set to border, it will act as if a mask with alpha value 0 is over the border, therefore rendering it invisible. mask-position This property specifies the position of the mask. Syntax mask-position: xpos ypos
- 686 Part II: Core Style where xpos and ypos are set according to the more specific mask-position-x and mask- position-y properties. Examples O NLINE http://htmlref.com/ch6/maskposition.html Compatibility No specification Chrome 2+, Safari 3.1+ Note • In WebKit-based browsers this property is known as –webkit-mask-position. mask-position-x This property specifies the x-coordinate in the position of the mask.
- Chapter 6: CSS3 Proprietary and Emerging Features Reference 687 Syntax mask-position-x: length | percentage | left | center | right Example Compatibility No specification Chrome 2+, Safari 3.1+ PART II Note • In WebKit-based browsers this property is known as –webkit-mask-position-x. mask-position-y This property specifies the y-coordinate in the position of the mask. Syntax mask-position-y: length | percentage | top | center | bottom Example Compatibility No specification Chrome 2+, Safari 3.1+ Note • In WebKit-based browsers this property is known as –webkit-mask-position-y. mask-repeat This property specifies how the mask image will repeat. Syntax mask-repeat: repeat | repeat-x | repeat-y | no-repeat where the default is repeat. Examples
- 688 Part II: Core Style O NLINE http://htmlref.com/ch6/maskrepeat.html Compatibility No specification Chrome 2+, Safari 3.1+ Notes • In WebKit-based browsers this property is known as –webkit-mask-repeat. • If the value is not set to repeat, any area that is not covered by the mask will be treated as if there is a mask with an alpha value of 0 over it and that area will not display. mask-size This property specifies the size of a mask. Syntax mask-size: length [ length] where one length value indicates both the width and height and two length values indicate the width first and then the height.
- Chapter 6: CSS3 Proprietary and Emerging Features Reference 689 Example mask-size Example img.masked {-webkit-mask-image: url(starmask3.png);} O NLINE http://htmlref.com/ch6/masksize.html Compatibility No specification Chrome 3+, Safari 4+
- 690 Part II: Core Style Note • In WebKit-based browsers this property is –webkit-mask-size. opacity This property specifies the transparency of an element. Syntax opacity: alphavalue | inherit where alphavalue is a number ranging from 0.0, fully transparent, to 1.0, fully opaque. Examples #tng {opacity: 0.8; background-color: blue;} #invisible {opacity: 0;} #blam {opacity: 1;} #ie2 {opacity: 0.7; filter: alpha(opacity=70); zoom: 1;} Compatibility CSS3 Chrome 1+, Firefox 1+, IE 4+ (using filter property), Opera 9+, Safari 1.2+ Note • When using the filter property for Internet Explorer, make sure that the opaque object that you will apply the effect to has layout, which is usually accomplished by setting its size or position. outline-offset This property defines the offset from an element’s border and its outline. Syntax outline-offset: length | inherit where length is any valid CSS length value used to move the outline away from the element’s border. Negative values are supported and will put the outline within the element’s border.
- Chapter 6: CSS3 Proprietary and Emerging Features Reference 691 Examples #offset1 {outline: dashed 4px green; border: solid 10px red; outline-offset: 15px;} #offset2 {outline: dashed 4px green; border: solid 10px red; outline-offset: -45px;} Compatibility CSS3 Firefox 1.5+, Opera 9.5+, Safari 1.2+ Note PART II • Before Firefox 1.5, Mozilla browsers supported the equivalent –moz-outline- offset property. outline-radius This property defines the rounding of the corners on an outline. Syntax outline-radius: lengths | inherit where lengths is up to four valid CSS length or percentage values to round the corners of the outline. When multiple values are used, they are applied starting with the top left and proceeding to top right, bottom right, and finally bottom left. The values copy into the locations opposite, similar to how margins and paddings are handled in CSS. Examples #radius1 {-moz-outline-radius: 20px;} #radius2 {-moz-outline-radius: 20px 5px;} #radius3 {-moz-outline-radius: 20px 60px 5px 45px;} Compatibility CSS3 speculative Firefox 3+ Notes • This property is alluded to in CSS3 discussions, though it is not currently documented. The discussion here is based upon the current implementation in Mozilla-based browsers, which support it as –moz-outline-radius. • Mozilla browsers also define –moz-outline-radius-topleft, -moz-outline- radius-topright, -moz-outline-radius-bottomright, and –moz-outline- radius-bottomleft to set the corners individually. overflow-style This property allows a marquee to be used in the case of a text overflow. Syntax overflow-style: auto | marquee-block | marquee-line
- 692 Part II: Core Style The initial value is auto, which allows the user agent to determine the scrolling effect. A value of marquee-line employs horizontal scrolling, and a value of marquee-block employs vertical scrolling. The particular directions left to right or up and down will depend on the text direction in the document. Example ABCDEFGHIJKLMNOPQRSTUVWXYZ Compatibility CSS3 Chrome 1+, Opera 8+, Safari 2+ Notes • In Safari, it is necessary to set an element’s overflow-x or overflow-y to -webkit-marquee to activate marquee-style functionality. • In Opera, it is necessary to set an element’s display to -wap-marquee to activate marquee effects. overflow-x This property defines how content should behave when it exceeds the width of its enclosing element. Syntax overflow-x: auto | hidden | scroll | visible Example ABCDEFGHIJKLMNOPQRSTUVWXYZ Compatibility CSS3 Chrome 2+, Firefox 1+, IE 4+, Opera 9.5+, Safari 3+ Notes • This property is correctly written as –ms-overflow-x under IE 8 to show that it is an extension. • This is currently in the CSS3 specification and also supports values of no-display and no-content.
- Chapter 6: CSS3 Proprietary and Emerging Features Reference 693 overflow-y This property defines how content should behave when it exceeds the height of its enclosing element. Syntax overflow-y: auto | hidden | scroll | visible Example ABC PART II DEF GHI JKL MNO PQR STU VWXYZ Compatibility CSS3 Chrome 2+, Firefox 1+, IE 4+, Opera 9.5+ Notes • This property is correctly written as –ms-overflow-y under IE 8 to indicate it as an extension. • This is currently in the CSS3 specification and also supports values of no-display and no-content. • Some Firefox versions put the scroll bar the wrong direction with this property. perspective This property is used to give a 3-D sense of depth to an element. Only the children of the element are given the noted perspective, not the actual element itself. Syntax perspective: none | number where number is set to the distance of the z=0 plane from the viewer. The default is none. Examples Perspective set. Child gains perspective.
- 694 Part II: Core Style No perspective set. No perspective used. Compatibility CSS3 Safari 4+ Notes • WebKit supports this property as –webkit-perspective, though it is currently only available in the iPhone and the development builds of Safari 4+ on Macs. • This property only works in conjunction with another transform because it alters the way the other transform acts. perspective-origin This property is used to set the x and y origins for the –webkit-perspective property. Syntax perspective-origin: percentage | length | left | center | right [percentage | length | top | center | bottom ] where the default value is 50% 50%. Example Perspective set.
- Chapter 6: CSS3 Proprietary and Emerging Features Reference 695 width:120px;background-color:blue;-webkit-transform:rotateY(55deg);"> Child gains perspective. PART II Compatibility CSS3 Safari 4+ Notes • WebKit supports this property as –webkit-perspective-origin, though it is currently only available in the iPhone and the development builds of Safari 4+ on Macs. • This property only works in conjunction with the –webkit-perspective property. resize This CSS3 property is used to define whether an element should be resized and, if so, upon what axis. Syntax resize: both | horizontal | none | vertical Examples Resize both ways Username: Comments:
CÓ THỂ BẠN MUỐN DOWNLOAD
-
HTML & CSS: The Complete Reference- P1
50 p |
78 |
16
-
HTML & CSS: The Complete Reference- P7
50 p |
57 |
11
-
HTML & CSS: The Complete Reference- P2
50 p |
71 |
11
-
HTML & CSS: The Complete Reference- P13
50 p |
57 |
10
-
HTML & CSS: The Complete Reference- P3
50 p |
62 |
7
-
HTML & CSS: The Complete Reference- P5
50 p |
45 |
7
-
HTML & CSS: The Complete Reference- P4
50 p |
75 |
7
-
HTML & CSS: The Complete Reference- P6
50 p |
61 |
6
-
HTML & CSS: The Complete Reference- P10
50 p |
52 |
6
-
HTML & CSS: The Complete Reference- P12
50 p |
51 |
6
-
HTML & CSS: The Complete Reference- P16
50 p |
45 |
5
-
HTML & CSS: The Complete Reference- P14
50 p |
43 |
5
-
HTML & CSS: The Complete Reference- P17
50 p |
31 |
5
-
HTML & CSS: The Complete Reference- P11
50 p |
39 |
5
-
HTML & CSS: The Complete Reference- P9
50 p |
44 |
5
-
HTML & CSS: The Complete Reference- P8
50 p |
48 |
5
-
HTML & CSS: The Complete Reference- P18
7 p |
43 |
5

Set-Cookie: TLDEVNamespace=afn260d1nu07nkmjrgnj9a3037; path=/; domain=.tailieu.vn; HttpOnly


markdown:
# Java là gì? Và tại sao bạn phải quan tâm?
Chia sẻ: Mai Trần Thúy Hạnh | Ngày: | Loại File: PDF | Số trang:25
lượt xem 68
download
![](http://image1.tailieu.vn/document/thumbnail/2009/20090926/maithuyhanh/80x100/java_6672.jpg)
##
Java là gì? Và tại sao bạn phải quan tâm?
[Vui lòng tải xuống để xem tài liệu đầy đủ](javascript:void(0);)
Download
![](http://static1.tailieu.vn/b2013az/templates/version1/default/images/down16x21.png)
Tất cả đều đã nghe nói về Java. Nhưng liệu có ai không còn câu hỏi nào về hiện tượng này? Bây giờ, khi "bức tranh" Java đang đến ngay trước mắt mọi người, hãy thử xem qua công nghệ này và giải đáp các thắc mắc phổ biến nhất
Bình luận(0)
[Đăng nhập để gửi bình luận!](javascript:void(0);)
##
Nội dung Text: Java là gì? Và tại sao bạn phải quan tâm?
- Java là gì? Và tại sao bạn cần quan tâm? Tất cả đều đã nghe nói về Java. Nhưng liệu có ai không còn câu hỏi nào về hiện tượng này? Bây giờ, khi "bức tranh" Java đang đến ngay trước mắt mọi người, hãy thử xem qua công nghệ này và giải đáp các thắc mắc phổ biến nhất H: Java là gì? Đ: Đây là ngôn ngữ lập trình mới do một nhóm nhỏ các nhà khoa học của hãng Sun Microsystems sáng tạo nên. Theo như truyền thuyết của những người tạo ra ngôn ngữ này, thoạt tiên Java được gọi là Oak và người ta định dùng nó để lập trình cho bộ TV (set-top box). Tất cả các khả năng hiện tại cũng như những lời đao to búa lớn chỉ mới có sau này. Từ nền tảng Oak lúc đó, hãng Sun đã phát triển cả một chi nhánh tên là JavaSoft. H: Có phải JavaScript chỉ là một tên khác của Java? Đ: Không đúng. JavaScript là ngôn ngữ kịch bản để thông dịch (interpreted scripting language). Java là ngôn ngữ lập trình đích thực để biên dịch (complied programming language). Java và JavaScript chỉ có chung vài điểm nhỏ về ngữ pháp có thể làm các nhà lập trình quan tâm. Xét về tổng thể chúng là hai công cụ khác nhau hoàn toàn. H: Thế JavaBeans là gì? Đ:JavaBeans là một mẫu đơn thể khả chuyển, độc lập hệ máy (portable), platform-independent component model). Các lập trình viên dùng chúng để tạo các đoạn phần mềm mà người khác có thể dùng được trong chương trình của họ. H: Nếu Java cũng chỉ là một ngôn ngữ lập trình như bao ngôn ngữ khác, tại sao có nhiều lời đao to búa lớn thế? Đ: Về kỹ thuật, Java chỉ là ngôn ngữ lập trình nhưng có mục tiêu rất xa: nó cho phép lập trình viên tạo các bản sao chương trình mà người dùng có thể chạy trên hầu hết các hệ máy và hệ điều hành. Khả năng này thường được gọi là "viết một lần, chạy mọi nơi" (write once, run anywhere) là một lợi thế cực lớn. Nó biến Java thành công nghệ chủ chốt trong máy tính mạng (NC) và là thành phần sống còn của lập trình Web. H: Tôi không viết chương trình và chỉ dùng Microsoft Windows thì tôi đâu cần phải quan tâm đến khả năng "viết một lần, chạy mọi nơi"? Đ: Do tầm quan trọng của Java đối với các nỗ lực phát triển NC, nó cũng là yếu tố không nhỏ trong vấn đề Tổng chi phí sở hữu (total cost of ownership - TCO). Sự tranh luận này đã buộc Microsoft và các công ty khác chú ý hơn đến vấn đề phiền phức là nâng cấp và bảo trì cả một "hạm đội" các hệ thống Windows. Công ty Microsoft đã tung ra bộ Zero-administration (không cần quản trị) và người ta hy vọng hãng sẽ bổ sung nhiều tính năng tương tự trong các phiên bản mới của Windows. Microsoft cũng đang phát triển dòng máy NC riêng. ở dòng này máy đầu cuối là một loại đặc biệt chạy Windows và máy chủ đa người dùng cũng chạy Windows. Ngoài ra, nếu bạn dùng một trình duyệt Web tương đối mới, rất có khả năng máy bạn đã chạy một vài Java applet. Rất nhiều các dải chữ chạy hay hoạt hình trong các trang Web được viết bằng Java. Đến cuối năm nay sẽ có nhiều công ty bắt đầu dùng Java để tạo các trang phức tạp hơn và tương tác hơn như các hướng dẫn cho người dùng cài đặt hay dùng thử các sản phẩm phần mềm.
- H: Sự khác biệt giữa Java app (ứng dụng Java) và Java applet là gì? Đ: ứng dụng (app) là một chương trình độc lập mà bạn có thể chạy trên máy của mình. Các ứng dụng phi-Java có rất nhiều, trong đó có cả tá bạn đang dùng như Microsoft Word hay Excel. Cho đến nay mới có rất ít ứng dụng Java. Java applet thường chỉ là các chương trình nhỏ hơn nhiều. Chúng chỉ chạy bên trong trình duyệt Web của bạn. H: Nếu mới chỉ có ít ứng dụng Java và các lập trình viên hiện nay chủ yếu dùng Java để tạo minh họa trang Web thì "lợi thế lớn" ở đâu? Đ: Minh họa trang Web chỉ là bước đầu. Ngôn ngữ dùng cho mạng máy tính này khai thác sự liên kết tốt hơn rất nhiều việc đơn thuần dùng chung tập tin. Hai dự án nổi bật cho hướng này là Kona của Lotus (xem http://www.kona.lotus.com) và Alta của Corel. Cả hai dự án đều tập hợp các ứng dụng gọn nhẹ, gồm soạn thảo văn bản, bảng tính, tu sửa hình đồ họa hay trình diễn các PIM. Tất cả chúng ta đều chạy trên máy tính mạng hay bất kỳ hệ thống Windows (hay phi Windows) nào hỗ trợ Java. Những chương trình này không được trông đợi sẽ thay thế hoàn toàn các bộ chương trình văn phòng. Chúng sẽ là các chương trình gọn hơn, đơn giản hơn mà bạn hay cần đến trong văn phòng. Ưu thế của bộ này là bạn không phải cài đặt hay bảo trì cả một mớ phần mềm văn phòng trên máy của mình. Khía cạnh hấp dẫn nhất của Kona và Alta, theo dự kiến là khả năng đật cấu hình. Mai này nếu bạn có một bộ phần mềm như vậy trong máy, bạn có thể tùy ý sửa chữa. Ví dụ nếu bạn dùng SmartSuite 98 của Lotus, bạn được phép thêm bớt các thành phần ActiveX và Kona. Alta thậm chí cho phép bạn tùy biến giao diện của chương trình bằng một trình soạn thảo HTML bất kỳ trên thị trường. Đây có lẽ là bước đầu của việc chuyển đổi từ các cấu hình phần mềm độc nhất, định sẵn sang các thành phần cho phép tùy đặt cấu hình. Nếu bạn muốn một giải pháp trọn bộ, tiêu chuẩn hóa thì cũng có sẵn. Nhưng nếu bạn đã biết rõ mình cần và không cần gì, bạn có thể lắp ghép các thành phần, điều chỉnh hệ thống theo như nhu cầu. Tuy vậy cuộc cách mạng này sẽ chưa diễn ra chừng nào Java chưa hoàn tất cam kết "viết một lần, chạy mọi nơi". H: Khái niệm "100% Pure Java - Java chính gốc" là gì? Đ: Đây là một loại chứng thư của Sun cấp cho chương trình viết bằng Java thỏa yêu cầu không phụ thuộc vào mã của hệ điều hành và sẽ chạy trên bất cứ máy ảo Java nào (JVM - Java Virtual Machine). H: Làm sao một chương trình có thể chạy mọi nơi? Đ: Một ứng dụng cổ điển, như Lotus 1-2-3, bản thân nó đã tự chạy được. Cuộc sống của phần mềm bắt đầu khi người ta viết ra bằng một ngôn ngữ lập trình nào đó như C chẳng hạn. Chương trình phát triển sẽ dịch nó sang mã nhị phân (binary format) để bộ xử lý của máy bạn chạy trực tiếp được. Do máy Mac và PC dùng bộ xử lý khác nhau, chúng không thể dùng chung một bản chương trình gốc (native executable), trừ phi dùng một phần mềm nào đó giải lập kiến trúc của máy kia. Nói chung việc giả lập thường làm giảm tốc độ và dễ gây ra vấn đề do kém tương thích. Các chương trình Java được dịch sang kiến trúc của riêng nó, gọi là định dạng bytecode. Để chạy chương trình Java, bạn cần một phần mềm nữa phiên dịch mã bytecode cũng như cung cấp cho nó môi trường và các dịch vụ cần thiết. Tầng phần mềm này chính là JVM. Máy ảo Java biến tất cả mọi nền phần cứng và phần mềm trở nên giống nhau dưới con mắt của chương trình Java. Về hiệu quả, FVM giống một trình điều khiển thiết bị của chương trình Java. Chạy chương trình Java trên JVM vẫn còn chậm hơn một chút so với chạy chương trình viết thẳng cho hệ máy đó. Dầu vậy, công nghệ JVM đang tiến bộ mau chóng về mặt tốc độ và
- khoảng cách sẽ được thu ngắn lại rất nhiều trước cuối năm nay. Symatec và Microsoft đã bán ra rất đúng lúc các trình biên dịch và Sun sẽ tung ra HotSpot VM trong quý 4 năm 1997. Với sự kết hợp này, người ta mong đợi chương trình Java sẽ chạy nahanh như các trình viết bằng C. Các hãng phần mềm coi hướng phát triển bằng JVM là rất hấp dẫn vì họ có thể đẩy các chương trình Java chạy trên mọi hệ máy. Chỉ cần họ viết một JVM cho hệ máy đó. Cho đến nay, đã có JVM cho rất nhiều hệ máy, từ máy tính lớn (mainframe) đến hầu hết tất cả các kiểu máy để bàn kể cả PC và Mac. H: Liệu VM có là một mốt nhất thời? Đ: Tôi e rằng không. Trước hết, máy để bàn ngày nay có đủ sức mạnh để hỗ trợ phần việc mới - chạy chương trình qua JVM. Do đó vấn đề cần quan tâm là chương trình sẽ chạy nhanh hơn trong Java hay trong C++. Nếu bạn dùng các chương trình kiểu như soạn thảo văn bản thì bạn sẽ không nhận ra sự khác biệt. Xét ở tình huống khác, nếu làm việc với bảng tính lớn, cần tính toán nhiều, bạn sẽ nhận ra sự khác biệt về tốc độ và bạn có thể sẽ không muốn dùng ứng dụng Java. Tuy vậy, một khi HotSpot VM ra đời, sự khác biệt tốc độ sẽ biến mất. Và khuynh hướng là người ta ngày càng dùng nhiều hơn công nghệ VM. Trong năm 1997, IBM sẽ xuất xưởng máy ảo đa năng, hỗ trợ ba ngôn ngữ: Java, BASIC và Smalltalk. Nếu như thử nghiệm này thành công, hy vọng sẽ có thêm nhiều sản phẩm hỗ trợ công nghệ VM. H: Công nghệ Java đã hoàn chỉnh? Đ: Không nó chưa hoàn chỉnh. Java là ngôn ngữ trẻ kéo theo một cái đuôi khổng lồ. Tuy vậy nó đang phát triển và thay đổi ở tốc độ chóng mặt. H: Tại sao tôi phải để ý đến Java? Đ: Các công cụ phát triển phần mềm là các chương trình cực kỳ phức tạp và thường có lỗi. Khi các nhà phát triển dùng các công cụ này chế tạo phần mềm thương mại, những lỗi này có thể tạo ra "khe nút" trong sản phẩm. Các công cụ lập trình, sau mỗi ấn bản lớn thường đòi hỏi một vài lần chỉnh sửa để giải quyết lỗi cho bớt đi đến mức chấp nhận được. Khi công cụ thay đổi nhanh quá, các công ty viết ra sẽ không còn thời gian mày mò tìm lỗi. Nếu có điều kiện vào Internet, bạn sẽ thấy nhiều cuộc trao đổi về các chương trình Java chạy khác nhau hay không chạy trên các trình duyệt khác nhau hay dưới hệ điều hành khác. Hy vọng những vấn đề này sẽ chóng qua. Một vấn đề nữa là việc học lập trình. Lập trình viên chưa bao giờ biết tường tận công cụ của họ vì mỗi lần thay đổi lớn họ lại phải học cái mới. Trước mắt, dùng phần mềm Java rút gọn dường như hơi phiêu lưu so với dùng phần mềm thường. Một số phần mềm Java cần phải tăng khả năng tái dùng các thành phần của chúng, như vậy lập trình viên sẽ có thời gian tập trung vào việc năng suất chất lượng và tính uyển chuyển của sản phẩm. Nhưng không ai có thể làm được điều này chừng nào các công cụ chưa chấm dứt việc bị sửa đổi như chong chóng hiện nay. H: Tôi có thể tìm ra các lợi ích gì nữa từ các thành phần? Đ: Có thể. Đã nhiều năm chúng tôi biết có dự định rằng người sử dụng có thể tùy biến thay đổi các bộ phận của phần mềm như kiểm tra chính tả và tu sửa đồ họa nhưng trong thực tế thì chưa thấy. Lý do chính là các công ty phần mềm chưa thấy sự khuyến khích thỏa đáng. Java và ActiveX đi theo hướng này. Các sản phẩm như Kona của Lotus và Alta của Corel sẽ chỉ cho thấy người dùng có thật sự cần tính năng này không. H: An ninh trên Internet là một vấn đề không thể bỏ qua. Còn Java thì sao?
- Đ: Các đoạn mã Java đương nhiên an toàn hơn ActiveX và không như các điều khiển ActiveX, nó không tạo ra bất cứ thay đổi nào trong cấu hình hệ thống. Nhưng vấn đề an ninh vẫn cón cho cả Java, ActiveX lẫn các hệ điều hành và trình duyệt Web. Sắp tới, ít nhất Java chắc vẫn tiếp tục an toàn hơn mức trung bình. Đoạn mã Java độc ác nhất vẫn không thể chạm vào các đĩa cứng hay Registry của máy bạn. Các than phiền phổ biến nhất về "đống cát" Java là nó quá cứng nhắc. Nó không cho phép các nhà phát triển thậ được làm những việc đáng ra được quyền làm. Ví dụ, Java applet không thể đọc được tài liệu trong máy cục bộ. Tương lai sẽ sáng sủa hơn vì Sun sẽ hỗ trợ một hình thức chứng thư, bạn thêm chút tự do cho đoạn mã Java từ các nguồn tin cậy. H: Java sẽ tiến tới đâu? Đ: Có hai việc đã rõ ràng. Thứ nhất, Java sẽ tiếp tục biến đổi ở mức độ đáng kinh ngạc hiện nay ít nhất trong 6 tháng tới vì Sun và các công ty khác đang nỗ lực đáp ứng nhu cầu các nhà phát triển. Về lâu về dài, đây là điều tốt cho người sử dụng. Điểm thứ hai, Sun, Netscape, IBM cùng nhiều công ty khác đã đầu tư rất nhiều vào Java nên không ai dám nghĩ rằng họ lại có giây phút do dự trong việc biến Java thành một ngôn ngữ thành công dài lâu. Hiện nay Java đã tồn tại, nếu chỉ xét đến mảng dùng để tạo đoạn mã trong trang Web. Java đã thực sự trở thành một trong những ngôn ngữ căn bản của Web và nó hữu dụng đến mức khó mà thay thế. Tương lai của Java ở góc độ là một công cụ tạo các ứng dụng kinh doanh lớn thì còn mờ mịt hơn nhiều. Câu trả lời chắc phụ thuộc vào việc Sun sẽ cố gắng đến đâu trong một hai năm tới trong việc sửa đổi Java về căn bản. Các yếu tố khác là sự phổ biến của máy tính mạng, sự thành công của các sản phẩm như Kona và Alta. Sun đã tạo và hỗ trợ một số tính năng mới rất đáng kể: công nghệ InfoBus của Lotus cho phép các thành phần Java chia sẻ dữ liệu dễ dàng và một nhóm làm việc Java tên là JFC chuyên giúp lập trình viên đẩy nhanh việc phát triển phần mềm. Cuộc cách mạng CN là phần khó giải nhất của câu đố này. Dầu vậy những bước đi đầu tiên cũng đã có vẻ rõ ràng. Nó sẽ thâm nhập vào các thiết bị đầu cuối của các máy tính lớn truyền thống trong các cơ sở giáo dục. Tất nhiên, việc NC sẽ chiếm 0,1% hay 25% thị trường máy để bàn vẫn còn chưa biết được. Dầu sao đi nữa, Java vẫn sẽ là phần quan trọng của toàn cảnh NC, loại máy đang mở rộng thị trường cho các chương trình chuyên Java mà bạn cũng có thể chạy trên Windows. Cần biết về Java Java hoà hợp tất cả lại với nhau Ngôn ngữ lập trình Java là một trong những chủ đề được nói đến nhiều nhất trong thế giới hiện nay, và logo của Java - một tách cà phê bốc khói, cùng các applet Java, tràn ngập khắp nơi trên World Wide Web. Vậy, hiện tượng Java có gì đặc biệt, và tại sao nó lại có thể làm thay đổi bộ mặt của thế giới điện toán? Một thực tế được công nhận là Java, ngôn ngữ lập trình của Sun Microsystems, có một sức mạnh đầy ấn tượng. Chỉ mới xuất hiện hai năm trước, Java đã được ngành công nghiệp này chấp nhận với tốc độ chưa từng có, kể từ khi hệ điều hành Windows bùng nổ. Uy lực của Java đã biến Sun Microsystems (từ sau đây gọi tắt là Sun), người khai sinh ra nó, từ một nhà cung cấp các công nghệ máy server đắt tiền thành cái tên quen thuộc trong từng nhà và là đối thủ nặng ký trong dòng chảy của công nghệ tính toán. Sun mô tả Java như là một ngôn ngữ lập trình đơn giản, hướng đối tượng, hiểu - mạng, có thể biên dịch, mạnh, an toàn, độc lập với cấu trúc, dễ di chuyển, hiệu suất cao, đa luồng, và có tính động. Những điều đó không dễ giải thích. Vậy thì, cụ thể Java làm được gì?
- Về cơ bản, nó giúp các nhà phát triển phần mềm thực hiện được hai việc: • Thứ nhất, họ có thể xây dựng nên các applet Java, đó là những trình ứng dụng mini được phân phối qua Internet và chạy trong một trình duyệt Web hiểu Java. Các applet Java tăng cường cho trang Web khả năng tương tác phong phú hơn và tính đa phương tiện tốt hơn so với khi dùng HTML bình thường. • Thứ hai, các nhà phát triển phần mềm có thể xây dựng các trình ứng dụng hoàn chỉnh bằng Java, như bộ xử lý văn bản, bảng tính, hoặc bộ chương trình văn phòng tổng hợp (như Corel đang làm chẳng hạn). Ưu điểm của cách làm này là các trình ứng dụng chỉ cần viết một lần mà chạy được trên hầu hết mọi loại máy tính. Sự thành công của Java trong việc phát động khả năng sáng tạo của cả người dùng cộng tác lẫn cá thể là ở chỗ họ sẽ càng có ấn tượng hơn khi so sánh một thực tế rằng Java đơn thuần là một ngôn ngữ lập trình, trong khi các công nghệ và sản phẩm khác thì mỗi cái còn phải kết hợp với nhiều tính năng huyễn hoặc khác. Tuy nhiên, Java là một ngôn ngữ lập trình có những khác biệt. Để thực sự hiểu được sức mạnh của Java và các nguyên nhân làm cho nó nhanh chóng được ưa chuộng, bạn phải xem xét hoàn cảnh khai sinh ra nó và bầu không khí mà nó đã sống để nắm bắt lấy khả năng sáng tạo của nền công nghiệp máy tính. Java ra đời như thế nào Năm 1990, CEO của Sun là Scott McNealy được nhân viên Patrick Naughton báo tin rằng anh ta được phép nghỉ việc để làm cho Next Software (công ty hiện đã được Apple Computer mua lại). Thay vì trả lời như thường lệ, McNealy đã yêu cầu Naughton ghi ra tất cả những điều mà anh ta cho là sai lầm của Sun và đề nghị những biện pháp giải quyết "như cương vị của người có thẩm quyền cao nhất". Bảng liệt kê của Naughton đã đánh trúng những điểm yếu nhất của Sun, và bộc lộ các vấn đề mà nhiều người khác đã nhận thấy từ lâu - kiến trúc phần mềm mới quá tầm, chỉ bận tâm vào một mảnh nhỏ của thị trường, cùng hàng loạt "sai lầm" khác. Trước ngày Naughton chuyển sang Next, Sun đã thuận theo những ý kiến bất đồng của anh ta và lập nên nhóm "Green" gồm sáu nhà biên soạn phần mềm hàng đầu - nhiệm vụ của họ là "thâm nhập thực tế" và lên đường với công nghệ phần mềm có sẵn cho thị trường tiêu thụ. Chuyện kể rằng nhóm "Green" đã trữ Coca Cola và sôcôla (thực phẩm của những nhà biên soạn phần mềm) đầy tủ lạnh rồi bắt đầu thảo tung các loại thiết bị điện tử, từ hộp điều khiển từ xa và Game Boys của Nintendo đến TV và đầu chạy bằng video. Mục đích của nhóm là tìm cách cho các thiết bị điện tử "nói" với nhau ngay cả trong trường hợp chúng sử dụng các chip khác nhau. Phần mềm đầu tiên, tiền thân của Java , được đưa ra với tên gọi không mấy truyền cảm: Oak. Đây là một ngôn ngữ hướng đối tượng hạ cấp, có đôi chút gần với ngôn ngữ lập trình C++. Một thiết bị điều khiển từ xa có giao diện người dùng kiểu hiển thị và một nhân vật hoạt hình gọi là Duke (nay trở thành vật biểu tượng của Java trên WWW), cả hai đều lập trình theo Oak, được nhóm xây dựng lên và giới thiệu. Sun hài lòng với kết quả này, và đưa "Green" lên thành một công ty riêng lấy tên là First Person. Cuộc tấn công mở đầu của First Person vào lĩnh vực thương mại đã hoàn toàn thất bại. Sau những cuộc đàm phán kéo dài, hợp đồng để lắp ráp các hộp đặt trên TV cho hãng Time-Warner đã thất bại ở phút cuối cùng. Phi vụ liên quan đến việc chuyển đổi bàn điều khiển trò chơi video cao cấp của hãng 3DO thành hộp đặt trên máy cũng gặp cùng định mệnh như vậy.
- Cho mãi đến gần cuối 1993, khi Marc Andreessen, nhân viên của Netscape, viết ra Mosaic, trình duyệt Web đầu tiên, thì Oak mới thể hiện chính mình. First Person cho rằng Oak sẽ là một ngôn ngữ hoàn chỉnh để xây dựng các nội dung đa phương tiện trực tuyến. Naughton đã ráp nối lại bộ khung của trình duyệt Web đầu tiên hoàn toàn được viết theo Oak. Đó là sự ra đời của WebRunner - sau này trở thành HotJava. Phần cơ bản trong hướng chiến lược mới đối với Oak là ban phát tự do sản phẩm này trên Internet. Oak được đặt tên lại là Java vào năm 1995 và đã được đưa lên Internet. Java thực sự thu hút được sự quan tâm của cộng đồng trực tuyến khi Marc Andreessen mô tả nó như là phần "lạnh" (cool piece) của công nghệ, một bộ phận của Netscape Navigator 2.0, và làm cho nó gây được sự chú ý của hàng triệu người dùng. Câu hỏi hóc búa về java Đó là lịch sử mà cũng có thể chỉ là hoang đường, nhưng một cách chính xác Java là gì? Tại sao nó lại làm cho Web sống động, kích thích mạnh mẽ các nhà lập trình C++ bảo thủ tự nguyện rời bỏ loại ngôn ngữ khó nổi tiếng đó, châm một ngòi lửa vào các Intranet cộng tác, và làm thay đổi hoàn toàn bộ mặt thế giới Internet? Cách trả lời tốt nhất cho những câu hỏi này là mổ xẻ từng từ trong định nghĩa của Sun để hiểu thấu đáo toàn bộ hiện tượng Java. Theo Sun, Java là: • Đơn giản (simple). Java đơn giản vì, mặc dù dựa trên cơ sở C++ nhưng Sun đã cẩn thận lược bỏ các tính năng khó nhất của C++ để làm cho ngôn ngữ này dễ sử dụng hơn. Là một ngôn ngữ lập trình hoàn toàn mới, nó buộc phải có dáng vẻ và sự cảm nhận tương tự như các ngôn ngữ phổ biến hiện hành đồng thời đòi hỏi khoảng thời gian huấn luyện lại tối thiểu và thân thiện hơn với người dùng. Do đơn giản, ngôn ngữ này cũng rất nhỏ - nên nhớ rằng từ đầu nó đã được xây dựng để dùng cho điện tử dân dụng như đầu chạy bằng video và hộp điều khiển từ xa, những thiết bị có không gian lưu trữ rất hạn chế. • Hướng đối tượng (Object - oriented). Các ngôn ngữ lập trình hướng đối tượng có hàng loạt mô đun (đối tượng) có thể thay đổi và được xác định trước mà lập thình viên có thể gọi ra để thực hiện những nhiệm vụ cụ thể. Trong Java, các mô đun này được gọi là các lớp (class) và chúng được giữ trong thư viện lớp, tạo nên cơ sở của Java Development Kit (Bộ công cụ phát triển Java). Một trong những ưu điểm của việc lập trình hướng đối tượng là biên soạn khá nhanh. Cũng tương tự như đồ chơi trẻ con, sản phẩm của lập trình không hướng đối tượng là một tòa lâu đài làm bằng nhựa liền. Về sau nếu con bạn muốn có một chiếc ô tô nhựa, thì hoặc bạn phải kiếm một chiếc xe nhựa (có nghĩa là phải mua một đồ chơi mới), hoặc nấu chảy toà lâu đài đó rồi lấy nhựa của nó mà đúc thành chiếc ô tô. Nhưng trong lĩnh vực hướng đối tượng, con bạn có những khối Lego (loại đồ chơi gồm nhiều khối để trẻ con xây dựng thành nhiều đồ vật khác nhau), và dùng những khối đó để xây thành một toà lâu đài, chế tạo một chiếc ô tô hoặc bất kỳ cái gì mà nó muốn. Nói cách khác, giống như các khối Lego, các lớp của Java đều có thể sử dụng lại nhiều lần. • Hiểu mạng (network-savvy). Java được lập ra để hoạt động trên mạng và có các thủ tục để có thể quản lý các giao thức mạng như TCP/IP, FTP và HTTP. Nói cách khác, Java được xây dựng để thực hiện hoàn toàn thích hợp trên Internet. Chương trình Java thậm chí có thể xâm nhập vào các đối thượng khác thông qua Internet bằng cách sử dụng URL (địa chỉ Web) để định vị chúng. • Mạnh (robust). Khả năng mạnh phải phù hợp với thiết kế của ngôn ngữ, và hướng nó vào việc khắc phục những hư hỏng bộ nhớ và đảm bảo tính toán vẹn dữ liệu. Ví dụ, Java có tính năng "automatic garbage collection" (tự động thu gom rác) - có nghĩa là bộ nhớ được giải phóng một cách tự động - nên lập trình viên không phải bận tâm về việc quản lý bộ nhớ và nhờ đó ít có xu hướng làm những việc gây hỏng bộ nhớ.
- • An toàn (secure). Khả năng hướng mạng của Java tự động đưa ra yêu cầu về an toàn. Đặc tính an toàn của ngôn ngữ lập trình này bắt nguồn từ việc nó có những phần hạn chế được cài sẵn nhằm đề phòng các chương trình Java thực hiện những chức năng như ghi vào ổ cứng của người dùng hay cho phép virus từ mạng hoặc từ môi trường phân tán thâm nhập vào. • Độc lập với cấu trúc (architecture neutral). Đây là thuộc tính đặc sắc nhất của Java. Có nghĩa là Java không phụ thuộc vào hệ máy (platform - loại máy, HĐH) - các trình ứng dụng được biên soạn bằng Java có thể dùng được trên hầu như mọi dòng máy tính, từ PC Windows hoặc OS/2, cho đến Macintosh của Apple hoặc các trạm làm việc Unix. Để đánh giá hết ý nghĩa của tính độc lập với hệ máy này, hãy tưởng tượng bạn là một nhà biên soạn phần mềm, bạn mới đưa ra một trình duyệt Web dùng cho Windows 3.1. Do yêu cầu, bạn phải phát triển một sản phẩm giống như vậy nhưng dành cho người sử dụng các hệ điều hành khác như Mac OS, Unix hay các version khác của Windows (ví dụ 95 và NT). Để tiếp cận những thị trường đó, bạn phải sửa lại chương trình trên cơ sở hệ mới nếu không muốn nói là bạn có thể soạn thảo lại toàn bộ. Nhưng với Java bản chỉ phải biên soạn một lần và nó sẽ hoạt động trên mọi hệ thống, mọi hệ điều hành, miễn là bạn có một trình biên dịch Java hoạt động tronglúc chạy. • Di động (portable). Đối với một phạm vi rộng, Java là loại có thể di chuyển nhờ khả năng độc lập với hệ máy. Đồng thời, các loại dữ liệu, giao diện, cũng như dáng vẻ và cảm nhận của Java đều giống nhau trên mọi hệ máy. Hệ thống các thành phần của java cũng có tính di động cao - nó được viết bằng Java. • Có thể thông dịch (interpreted). Tính chất có thể thông dịch của Java có liên quan trực tiếp với tính không phụ thuộc vào hệ máy. Chương trình viết bằng C++ được dịch thành mã máy, thực chất ngôn nhữ đặc trưng riêng cho dòng bộ xử lý. Cho nên nếu bạn dịch chương trình trên một máy Pentium, nó sẽ không chạy được trên dòng máy khác như PowerPC chẳng hạn. Đó là lý do tại sao các phần mềm được biên soạn riêng cho Windows và cho Macintosh. Khả năng độc lập với cấu trúc không cho phép Java giải quyết vấn đề này. Lý do là vì có hai phần cho hệ thống phát triển ứng dụng Java -trình biên dịch (compiler) và trình thông dịch (interpreter). Thay vì mã máy, trình biên dịch sẽ biến chương trình của bạn thành các mã byte (bytecode), và đó là loại không phụ thuộc hệ máy. Những gì mà hệ thống của bạn cần là một trình thông dịch mã bytecode Java để biến mã byte đó thành ra mã mà bộ xử lý hiểu được (tương tự như phương pháp hoạt động của các chương trình Basic). Thành công của các applet Java trên World Wide Web là nhờ chúng chạy được trên mọi máy tính đang dùng browser hiểu Java. Netscape Navigator với trình thông dịch mã bytecode cài sẵn bên trong là một ví dụ. • Tốc độ cao (high perfprmance). Khi Sun Microsystems mô tả Java có tốc độ cao, có lẽ họ muốn nói về mã bytecode được thông dịch hiệu quả như thế nào. Về tốc độ các applet hay chương trình Java thì nói chung đều chậm hơn các chương trình Java thì nói chung đều chậm hơn các chương trình được biên dịch viết bằng C++, vì chương trình này đã được tối ưu hoá từ trước cho hệ máy nhất định. Java đã phải trả giá về hiệu suất cho tính không phụ thuộc hệ của nó. • Đa luồng (multithreaded). Đa luồng có nghĩa là ngôn ngữ Java cho phép xây dựng trình ứng dụng, trong đo, nhiều quá trình có thể xảy ra đồng thời. Tính đa luồng cho phép các nhà lập trình có thể biên soạn phần mềm đáp ứng tốt hơn, tương tác tốt hơn, và thực hiện theo thời gian thực. • Tính động (dynamic). Java động vì nó được thiết kế để đáp ứng với môi trường tác nghiệp luôn trong tình trạng thay đổi. Khi có yêu cầu mới xuất hiện trên thị trường, các loại đối tượng mới có thể được bổ sung vào ngay. Java là ngôn ngữ nóng Dù bỏ qua các tính chất ưu việt khác, Java cũng không phải là ngẫu nhiên được xem là một sản phẩm của WWW từ nguyên thuỷ. Điều đầu tiên mà mọi người trải qua đối với Java là một hộp màu trắng nằm ngay giữa trang Web khi tải xuống một applet Java. Bạn sẽ thấy applet Java
- trong vô số các băng quảng cáo trên WWW, nó giúp các hình ảnh, âm thanh, và video trở nên hấp dẫn hơn, không độc quyền, và có thể làm theo yêu cầu. Applet Java được dùng làm cơ sở cho những giải pháp thương mại điện tử, cũng như để tô điểm cho những trình ứng dụng hiện thực ảo bằng hình động và tương tác với người dùng. Tuy nhiên, Java cũng đang chuyển mình để có tầm vóc cao hơn cái vốn có hiện nay là một màn cửa sổ đa phương tiện cho Web. Java đang vươn lên để thành một hệ máy tính mà trên đó các nhà lập trình có thể xây dựng nên trình ứng dụng không phụ thuộc nền. Java đang thực hiện một công việc vĩ đại là bảo đảm thành công cho những bước chuyển mới liên quan đến các ngôn ngữ lập trình đã xác lập. Các nhà biên soạn phần mềm chủ chốt đã đưa ra, hoặc đang làm việc tích cực trên các phiên bản Java của những ứng dụng chính (Corel Office for Java) hoàn toàn bằng Java. Corel Office là một phần mềm dạng mô đun có thể phát triển, và được xâydựng nhằm cho phép hợp tác nhóm và phân phối tài liệu qua mạng. Corel Office for Java (phiên bản beta) có thể tải xuốn từ Web site của Corel (http://www.corel.com), và chạy dưới dạng trình ứng dụng đơn với JDK 1.02 của JavaSoft hoặc sử dụng một trình duyệt Web hiểu Java như Netscape Navigator 3.01, Netscape của Sun. Office for Java cũng có thể chạy dưới kênh Castanet (xem phần cuối). Lotus cũng đã gia nhập hàng ngũ Java nhờ có hậu thuẫn của IBM. Theo sát gót Corel, Lotus đang làm việc trên phiên bản Java của phần mềm SmartSuite, nhưng bằng cách tiếp cận khác. SmartSuite sẽ được tạo lại dưới dạng nhiều thành phần Java nhỏ (tên gọi chung là Kona) được gắn với nhau, và có thể tuỳ biến theo ý muốn người dùng. Ví dụ, nếu bạn chỉ cần dùng một ít tính năng trong các trình ứng dụng xử lý văn bản và bảng tính, Kona sẽ cho phép bạn tải xuống chỉ các phần nhỏ cần thiết, tránh được phần mềm dư (bloatware). Java cũng là vị cứu tinh cho IBM. Lần đầu tiên trong nhiều năm, công ty này tìm thấy con đường để cho các máy mainframe, workstation, server, và PC có thể dùng chung cùng một phần mềm; đó là đưa Java vào trong các hệ điều hành không tương hợp trước đây của mình. Java không những đã gây xáo trộn trong đấu trường phần mềm do làm cho Microsoft lo lắng về tính vô địch của nó, mà còn là chất xúc tác cho máy tính mạng của Oracle (Network Computer - NC) thanh hiện thực. NC là một PC hay một thiết bị thu gọn dùng để chạy mạng, hoặc nối với Internet qua modem. Java đang nhanh chóng thâm nhập vào cấu trúc điệntoán cho phép các thiết bị ghép mạng có thể nói chuyện với nhau. Máy tính mạng sẽ có khả năng sống ngoài mạng hoặc Web bằng cách tải xuống các thành phần Java nhỏ có thể dùng nhiều lần, tức là các applet, các trình ứng dụng theo yêu cầu. Những hãng lớn như IBM, Apple, Netscape và Oracle đang cùng làm việc với Sun để biến các sản phẩm này thành hiện thực. Nhiều máy NC sẽ chạy trên JavaOS, hệ điều hành chuyên để chạy các applet Java. Hệ điều hành này được chạy trên máy tính mạng JavaStation của Sun, loại máy thin client, được nối với server trung tâm lớn qua mạng nội bộ hoặc đường dẫn lớn (fat pipe). Một số chuyên gia công nghiệp đã bác bỏ luận điểm cho rằng NC là sự trở lại của terminal câm những năm 1960 và 1970. Số mệnh của NC sẽ phụ thuộc vào sự phát triển của Java cũng như những cải thiện trong ngành viễn thông. JAVA và chàng khổng lồ Goliath Không còn nghi ngờ gì, Java - nếu giữ đúng lời hứa - sẽ là mối đe doạ đối với trục kinh doanh của Microsoft và Intel (được gọi là liên minh Wintel). Vai trò nền tảng điện toán của Java đã đặt nó vào vị trí cạnh tranh trực tiếp với Microsoft Windows, còn tính không phụ thuộc hệ và trung tính về cấu trúc thì làm giảm khả năng kinh doanh của Intel vì chip của các hãng sản xuất khác vẫn hoạt động tốt trong môi trường Java.
- Nền công nghiệp máy tính đang được chàng khổng lồ Wintel kéo chạy theo mình sẽ gây ra cơn đói hệ điều hành và trình ứng dụng, dẫn đến sự đòi hỏi về các bộ vi xử lý cao cấp của Intel. Sự thống trị của Wintel đối với nền công nghiệp này, một phần đã được đáp lại bằng sự tập hợp của các hãng phân phối chính sau lưng Java. Java được xem như là một công nghệ cứu tinh, ít nhất cũng làm chậm bước Wintel và hơn nữa là mở ra thị trường cho mình. Một số công ty như IBM, Apple, Lotus và Borland đã bị mất thị phần cho Microsoft, nay nhờ tiềm năng của Java đã đang đưa các sản phẩm của mình ra khỏi tình trạng trì trệ và cân bằng lại lực lượng trong cuộc chiến cạnh tranh. Nhưng tất nhiên Microsoft không bao giờ cam chịu. Tháng ba năm 1996, Microsoft đã thua đậm ở hiệp một do việc xin cấp phép công nghệ Java từ Sun bất thành - nhiều người nghĩ rằng Java Virtual Machine (máy ảo Java của Microsoft) sẽ có tốc độ nhanh nhất trên thị trường khi nó được đưa ra dưới dạng một phần của Windows 97. Cũng giống như sự nhận thức chậm chạp vè tầm quan trọng của Internet trước đây, Microsoft hưởng ứng Java rất trễ - hoặc đơn giản là họ bỏ qua trong sự hy vọng rồi nó sẽ qua đi? Chỉ sau khi Netscape đưa Java vào Navigator, Microsoft mới buộc phải đưa tính năng hỗ trợ Java vào Internet Explorer. Hiện nay công ty phần mềm dẫn đầu thế giới này đang rút ngắn khoảng cách và làm cho Java trở nên một tính năng quan trọng trong hệ điều hành tiếp sau của họ. Microsoft tấn công trên tất cả các mặt trận. Công nghệ ActiveX của công ty này được định hướng để cạnh tranh trực tiếp với Java hoặc JavaBeans (một tập Java phụ dùng để đảm bảo cho các trình ứng dụng Java cài lại với nhau theo một phương pháp chung). Về cơ bản, nó là một mở rộng của Object Linking and Embedding (nhúng và liên kết đối tượng - OLE) cho phép công nghệ cũ này có thể hoạt động trên Internet rất giống với applet Java. Vấn đề ActiveX là bị buộc chặt vào nền Windows chạy chip Intel. Java thì ngược lại, viết một lần, chạy khắp nơi, và đó là ưu điểm nổi trội so với ActiveX. Chip Java của Sun cũng cố gắng tiến vào các sản phẩm cứng - chip. Chip picoJava được thiết kế để thực hiện trình ứng dụng Java nhanh hơn gấp vài ba lần so với loại CPu thông thường như chip thuộc họ x86 của Intel - kể cả Pentium. PicoJava và các thành viên khác trong cấu trúc JavaChip đều được tối ưu hoá đối với Java. PicoJava I thực hiện Java trực tiếp không đòi hỏi phải có trình biên dịch Java hoặc trình phiên dịch Just In Time (JIT). Sun đã kiêu hãnh tuyên bố rằng các thiết bị được xây dựng xung quanh chip này sẽ chạy applet Java bằng loại chip thuần chủng. Bộ xử lý sẽ quản lý điều này bằng việc thích ứng 100% với Java Virtual Machine (Máy ảo Java của Sun - JVM). JVM cho phép applet chạy trong các browser như Netscape Navigator và Internet Explorer. Những chuẩn kiểm tra riêng của Sun cho thấy rằng picoJava I chạy nhanh hơn gấp 15 đến 20 lần so với 486 có trình phiên dịch ở cùng tốc độ xung nhịp, và nhanh hơn 5 lần so với Pentium có trình phiên dịch JIT ở tốc độ xung nhịp bằng nhau. Chip 25 USD này hướng vào NC, máy trợ giúp cá nhân (Personal Digital Assistan), các điện thoại thông minh, và đồ dùng điện tử tiêu dùng giá rẻ khác. Một chip Java khác, gọi là microJava, dự kiến ra đời vào cuối 1997, dựa trên cơ sở picoJava, nhưng có nhiều chức năng ứng dùng đặc trưng. Chip này nhắm vào NC và các thiết bị tương tự, thiết bị viễn thông, và trò chơi giá rẻ. Các nhà sản xuất cần xây dựng các thiết bị hiệu suất cao có thể trông chờ vào chip UltraJava của Sun. Điều này sẽ kích thích sự ra đời của các máyhính mạng, phân phối các giải pháp giải trí đa phương tiện dựa vào Java, và làm mạnh thêm các ứng dụng hình ảnh và dồ hoạ ba chiều. Java cũng nỗ lực mở rộng các hệ điều hành. Java OS1.0 của Sun là một hệ điều hành nhỏ và có cách khác để chạy các trình ứng dụng Java với tốc độ nhanh. Nó thực hiện Java trực tiếp trên
- nền phần cứng được tăng cường bởi các bộ xử lý Sun SPARC hoặc Intel x86 và Advanced RISC Machines Strong ARm. Sun đang nhắm vào tột số lượng lớn các thiết bị khác nhau, từ NC cho đến máy cầm tay. Toàn bộ môi trường ứng dụng Java (Java Application Environment) chỉ cần một không gian 2,5MB, còn hệ điều hành thì có thể thu gọn để vừa vào các thiết bị cầm tay. Một số công ty như IBm, Toshiba và Wyse Technology đã được phép dùng Java OS trong các sản phẩm của mình. Thưởng thức hương vị cà phê Sun nổ súng trên mọi mặt trận tại thời điểm này, và đẩy mạng cuộc chiến chống Microsoft. Cuối tháng hai vừa rồi, công ty này đã phát động một cuộc tấn công hai mũi vào lãnh địa của Microsoft bằng cách loan báo họ đã xây dựng được những sản phẩm có khả năng chuyển đổi PC Windows già cỗi thành NC hoặc trạm làm việc Java. Sản phẩm đầu tiên trong số này, mang tên Project Rescue, được công bố tại hội nghị JavaOne vào đầu tháng Tư năm nay sẽ cho phép các trình ứng dụng Java chạy trên DOS. Phần mềm Project Rescue (bao gồm cả JVM) cài đặt trên ổ cứng của PC và hoà hợp với HĐH có sẵn (hầu hết là Windows 3.x). Tại dấu nhắc DOS, bạn chỉ cần gõ "JAVAOS" để vào môi trường Java đồ hoạ, bao gồm giao diện người dùng đồ hoạ cùng phần mềm browser. Hệ thống Java này cũng sẽ bổ sung thêm khả năng ghép mạng cho máy tính, do đó máy tính hoàn toàn bỏ qua HĐH Windows, mặc dù nó vẫn nằm trên ổ cứng. Nhờ hiệu quả này mà PC Windows biến thành máy NC chạy các ứng dụng Java lấy từ server. Một sản phẩm khác có tên JavaBlaster, là card bổ sung bên trong với giá 99 USD, sẽ được cấm vào khe mở rộng ISA hoặc PCI. Card này dựa trên cơ sở bộ xử lý microJava của Sun. JavaBlaster được hy vọng sẽ là phương pháp rẻ tiền ểê biến đổi PC thành NC. Phiên bản PCI của card JavaBlaster sẽ đưa ra giải pháp ngang cấp (không phải nâng cấp), trong đó các máy PC Pentium loại mới có thể được dùng thay thế như các trạm làm việc Java. Hai sự khởi đầu này một phần mềm và một phần cứng - hy vọng sẽ bổ sung cho nhau. Vậy thì, Java là gì? Java không chỉ là một ngôn ngữ lập trình mà còn hơn thế nữa. Đó là cách suy nghĩ mới hoàn toàn về điện toán. ở nó có khả năng giúp cho nền công nghiệp máy tính phá vỡ sự thống trị của Wintel. ở nó có khả năng ghép nối mọi loại thiết bị vào mạng, nên chúng ta có thể tương tác với nhau theo những phương pháp mà trước đây chưa từng có. Java được bắt đầu như một ý tưởng, một hy vọng là đến ngày nào đó, mọi thiết bị sẽ có thể nói được với nhau thông qua một hệ thống mạng. Hiện nay, với Java, chưa có nới nào tiếp cận được mục tiêu đó, nhưng nó đã làm cho các nhà biên soạn phần mềm suy nghĩ về những gì có thể đạt được. Java mang cuộc sống đến cho WWW khi mà Web đã cho tiền thân của nó là Oak một viễn cảnh cuộc sống tốt đẹp hơn. Java đã được thấm sâu vào trong sự hiểu biết của nền công nghiệp này, còn nhanh hơn cả DOS hoặc Windows trong thời hoàng kim của chúng trước đây. Nhưng sự thành công lâu dài của Java không có gì đảm bảo - giống như một thần đồng nhỏ tuổi, phải trưởng thành nhanh chóng trong khi không được phép đốt cháy giai đoạn. Nếu vượt qua được, nó sẽ chứng minh rằng mạng là máy tính. Java và lập trình trong Internet. 1.Mạng Internet dưới góc độ công nghệ.
- Một mạng có thể chia ra làm hai phần cơ bản: hệ thống phân phối thông tin và các ứng dụng mạng, và mạng Internet cũng không phải là ngoại lệ. Hệ thống phân phối thông tin của nó dựa trên họ giao thức TCP/IP, và tư tưởng liên kết thông qua các socket (đầu cuối-end point). Các ứng dụng Internet dựa trên mô hình Client/Server, client hỏi và server đáp. Công nghệ lập trình trong Internet có thể chia ra 3 thời kỳ, theo sự phát triển của bản thân Internet, với các mốc là sự xuất hiện của WWW và Java. 2.Giai đoạn trước khi xuất hiện WWW. Lập trình trong giai đoạn này chủ yếu dựa trên socket. Hoặc bạn tạo ra một dịch vụ mới, bằng cách viết các server và client, dựa trên giao thức riêng, như đã làm với các dịch vụ FTP, SMTP.. hay viết client cho các dịch có sẵn này. Lập trình theo hướng này đòi hỏi bạn phải biết nhiều về TCP/IP và cơ chế hoạt động của socket. Nếu bạn viết client, bạn sẽ phải làm quen thêm với giao thức của dịch vụ đó, còn nếu bạn tạo ra một dịch vụ mới, bạn cần phải tạo ra giao thức riêng cho dịch vụ của mình. Ngôn ngữ lập trình tùy thuộc vào HÐH, dựa trên mô hình Socket (trong Windows bằng cách gọi hàm của Winsock.dll), và thường là C, C++, Pascal.. Hướng này đòi hỏi nhiều ở bạn, cả hiểu biết lẫn công sức. Nhưng khả năng của nó rất lớn, và bạn nên làm quen, ít ra cũng để viết client cho các dịch vụ khác, hay tạo khả năng liên lạc với các dịch vụ khác từ ứng dụng của bạn. 3.Giai đoạn trước khi xuất hiện Java. Sự xuất hiện của dịch vụ WWW, giao thức HTTP, chuẩn URL đã tạo ra một hướng mới trong lập trình Internet. Hướng này dựa trên dịch vụ Web và giao thức HTTP, do đó bạn không cần biết về TCP/IP và tạo ra giao thức riêng của mình nữa. Hoặc bạn tạo ra các Web server application(WSA), cung cấp thông tin qua WebServer, hay là viết Client cho WebServer, truy nhập thông tin qua Web. Các yêu cầu của client, thông qua WebServer, được gửi đến WSA, chúng xử lý thông tin, tạo ra kết quả dưới dạng văn bản HTML, và qua WebServer, gửi lại cho client. Viết các WSA tuy không phức tạp như các Internet Server, nhưng cũng rất phức tạp, và đòi hỏi bạn phải biết về HÐH, chuẩn CGI, cũng như các giao diện của chúng. Ưu điểm của WSA là thị trường của chúng, lớn đúng bằng thị trường của WWW. Nhưng dịch vụ WWW được tạo ra để phân phối văn bản, nên việc truyền dữ liệu qua nó là không thích hợp và rất chậm. Ðể thay đổi một hai dữ liệu trong văn bản, bạn đành phải gửi đi nguyên cả trang, đó là hậu quả của việc dùng dịch vụ WWW sai chức năng của nó. Ngôn ngữ phổ biến là Perl, nhưng bạn có thể dùng C, C++ hay Delphi.. miễn là ứng dụng liên lạc được với WebServer. 4.Giai đoạn sau khi xuất hiện Java. Sự xuất hiện của Java và các trình duyệt Web hiểu Java (chạy được Java applets) đã giải quyết được nhược điểm của WSA, hỗ trợ cho lập trình với Socket, và mở ra một hướng mới. Ưu điểm của Java applet là chúng được truyền trong mạng, và chạy trong trình duyệt Web. Vì vậy, dữ liệu có thể được truyền thông qua chúng, chứ không phải dưới dạng văn bản. Chỉ bằng cách tạo thêm Java client cho các WSA đang hoạt động, trao đổi thông tin giữa trình duyệt Web và WSA, tốc độ thực hiện của các ứng dụng này đã nhanh lên rất nhiều, và cho phép sử dụng chúng thêm một thời gian nữa. Các ứng dụng viết trên Java có thể chạy trên hầu hết các HÐH, giúp đỡ rất nhiều cho việc lập trình với Socket, bạn không phải viết nhiều phiên bản cho các HÐH khác nhau. Ngoài các lĩnh vực truyền thống, các ứng dụng Java còn mở ra một hướng hoàn toàn mới, đó là các ứng dụng được lưu và truyền trong mạng, đòi hỏi tài nguyên hoạt động ít. Ðiều này cho phép, thông qua mạng Internet, các hãng phần mềm bán sản phẩm, các hãng sử dụng phần mềm tiết kiệm tài chính bằng cách lưu các ứng dụng trên Server, bớt công sức và phương tiện trong việc nâng cấp phần mềm, cũng như phần cứng của Clients, các hãng sản xuất đồ dân dụng đưa ra các sản phẩm "thông minh"(có khả năng sử lý dữ liệu thông qua processor riêng và quản lý từ mạng..)
- Về mặt lập trình, Java ngoài ưu điểm có cú pháp giống C++, chỉ có thêm một ưu điểm nữa, đó là vấn đề quản lý bộ nhớ, còn lại không có gì thay đổi. Thậm chí, do các hệ thống lập trình trên Java còn yếu, bạn sẽ thấy khó khăn hơn(JBuilder, Visual Cafe chưa thể so với Delphi, VB..). Với các ứng dụng cổ điển, yêu cầu đối với bạn không có gì thay đổi, vẫn từng đó kiến thức và công sức. Còn về các ứng dụng đặc thù của Java, tuy đã xuất hiện nhiều tư tưởng mới mẻ, như ứng dụng Java cho Network Computer, các sản phẩm "thông minh".., nhưng hãy còn quá sớm để xác định, chúng sẽ đi về đâu. 5.Kết luận. Với sự xuất hiện của Java, trong lĩnh vực lập trình đã có nhiều thay đổi, một số được hoàn thiện hơn, một số mới ra đời. Trước mắt, xuất hiện một số xu hướng sau: Các ứng dụng WSA trên CGI sẽ phải có thêm Java Client, không được phát triển lên nữa, và chết hẳn. Các ứng dụng với Socket sẽ phổ biến hơn nhiều, Server vẫn viết trên C++, Delphi.. do tốc độ Java còn thấp và giải quyết phần lớn các chức năng , nhưng Client được viết trên Java, và nếu có thể(kích thước nhỏ, không quá phức tạp..) thì dưới dạng applet, sau khi tốc độ của Java nhanh hơn(hy vọng HotSpot của Sun nhanh được như đã hứa, ngang với C++), Server trên Java sẽ phổ biến hơn. Còn Java với tư cách là một cuộc cách mạng, thì chúng ta phải đợi xem sao đã, chưa có gì chắc chắn, mặc dù hứa hẹn thì có nhiều. Trên đây là những suy nghĩ của riêng tôi về thực tiễn lập trình trong giai đoạn hiện nay. Do tôi mới làm quen với Java và vào Internet được 3 tháng, nên rất có thể những ý kiến đưa ra là sai, hoặc không chính xác. Vì vậy mong mọi người chú ý, kiểm tra lại, và nếu có thể, trao đổi ý kiến với tôi! Thiết kế trang Web có tăng cường tính năng Java Nếu đã có thời gian làm việc trên Web với một Browser hiểu Java, chắc bạn sẽ muốn đưa thêm công nghệ tăng cường này vào các trang Web của mình. Nhưng tiêu khiển với các trang có sẵn có tăng cường Java mới chỉ được một nửa sự thú vị. Tìm ra các applet rồi đưa vào trang Web của chính mình mới thực sự đúng điệu. Vì vậy, thì hãy thoả mình vào chiếc ghế thoải mái hơn, và chuẩn bị để nối mạng - đã đến thời điểm của Java. Bước đầu tiên là phải quyết định định các trang được tăng cường Java của bạn như thế nào, rồi sau đó mới sờ đến applet, công cụ sẽ làm cho các trang đó thành hiện thực. Điều chủ yếu, nếu không có các applet, cơn khát Java của bạn sẽ không thể nào thoả mãn được. Rất may là việc tìm các applet còn dễ hơn cả việc tìm cửa hàng bán café ở Seattle; applet có ở khắp mọi nơi. Thực ra applet không phải là phương tiện duy nhất để tạo sinh động cho các trang Web của bạn bằng Java. Java Script, sẽ được trình bày chi tiết hơn trong phần III, cũng là một phương tiện bổ xung sống động Java . Tuy nhiên, Java Scrip chỉ như phần khuất chìm dưới nước của con thuyền applet, cũng là cà phê nhưng không phải là loại hảo hạng như applet. Chọn đúng applet hoàn hảo. Bạn hoàn toàn sẵn sàng bước vào giai đoạn làm sống động cho Web site của mình bằng một số applet Java vui mắt, khi đã dừng việc tìm kiếm, có thể nảy sinh câu hỏi : "Các applet đến từ đâu?". Đây là thời điểm ngồi lại và cùng trao đổi vài câu chuyện nhỏ.... Đừng toát mồ hôi vì nó
- Phương pháp tìm kiếm applet để sử dụng trong trang Web của bạn là một phần việc quan trọng trong toàn bộ quá trình lập kế hoạch. Khi phải quyết định các applet Java nào sẽ được đưa vào Web site của mình, bạn có thể một trong hai kỹ thuật sau đây: Lướt trên Web theo cảm hứng: cách dễ dàng nhất để tạo ra các ý tưởng cho Web site của bạn là nhìn xem những người khác đã làm như thế nào. Bằng cách lướt trên Web, bạn có thể tìm được các trang và các applet gây cảm hứng cho bạn. Quá trình này gọi là lướt theo cảm hứng (inspiration surfing), và có lẽ là phương pháp trực tiếp và thú vị nhất để tạo ý tưởng cho các trang Web của bạn. Làm việc căng thẳng: nếu bạn là người ham việc và thích tự hành hạ, bạn có thể tự hình thành các ý tưởng đó một cách tương đối độc lập, trực tiếp đáp ứng cho những yêu cầu riêng đối với site của bạn. Kỹ thuật này không mấy thú vị, đòi hỏi độ động não nhiều và bắt buộc tác giả trang Web phải tự đề ra các chi tiết của site mà không lợi dụng được hàng trăm hàng ngàn gì của những người khác đã đầu tư để xây dựng nên các Java site hiện đại. Điều tệ nhất của phương pháp này là sau khi đã xác định được những gì các applet đó phải thực hiện, bạn còn phải dựng nên chúng. Đúng vậy, nếu bạn đã có trình độ tiến sĩ máy tính, bạn có thể tự viết cho mình một applet từ hai bàn tay trắng. Nhưng nếu bạn là người mới vào nghề, thì tốt nhất là hãy tìm đến con đường dễ dàng và tuỳ biến những applet đã có sẵn từ trước. Chắc phần lớn mọi người thích làm việc theo cảm hứng hơn là căng thẳng. Còn bạn thì sao? Để thực sự cảm thấy được những gì các trang Web của mình có thể và sẽ phải thực hiện, bạn nên dành thời gian đáng kể truy cập trực tuyến để xem xét những gì có ở đó. Chỉ sau khi đã đầu tư nhiều thời gian cho công việc định hướng các tài liệu siêu phương tiện này, bạn mới có thể hiểu rõ và đánh giá đúng cách thiết kế trang Web phù hợp. Đáng tiếc là có nhiều người lao vào Web mà không thực sự hiểu rõ về nó. Phương pháp mù quáng này nhất định sẽ dẫn đến tình trạng làm việc căng thẳng, cố nặn ra các chi tiết của việc xây dựng trang Web mà không gắn với một lý do xác đáng nào, trong khi chỉ cần bỏ ra một ít thời gian để lướt Web cũng sẽ làm cho toàn bộ quá trình dễ dàng hơn nhiều. Mắc sai lầm này là một tai hoạ cho Web site của bạn; phát hành các trang có tăng cường Java trên World Wide Web mà không đầu tư thời gian và kinh nghiệm để biết rõ cách thiết kế nào là tốt hoặc xấu, hệ thốngì chẳng khác gì xuyên một chiếc cọc nhọn vào thẳng tim site của bạn. Để hiểu lý do tại sao như vậy, bạn phải xem xét kỹ bản chất của Web. Có hàng chục triệu người hàng ngày lướt trên Web, họ chịu mất thời gian và tiền bạc để được sưởi ấm trước màn hình máy tính. Hiện nay, đường phân phối dữ liệu qua Web rất hẹp và lưu thông thường tắc nghẽn. cáng nhiều người trên Web thì việc định hướng này càng trở nên chậm chạp hơn-giống như các cửa hàng trong ngày lễ tết. Một trong các lý do chính để mọi người nối vào Web là để phát hiện được những cái mới. Bạn có thể đi mọi nơi, xem mọi cái, và du lịch đến vô tận, hình như không bao giờ quay lại những bước chân cũ của mình. Tuy nhiên, mỗi khi tìm đến một trang, bạn cũng phải đợi nó tải xuống qua Net. Web không phải là một hệ thống thông tin được phân phối ngay tức khắc như vô tuyến truyền hình; nó phải tốn thời gian để cho mã nguồn, hình ảnh ,âm thanh và các applet của trang tải xuống máy tính của bạn. mà trên Web, thời gian là tiền bạc. Thiết kế trang Web càng quan trọng hơn khi bạn dùng Java, và các applet tốn nhiều thời gian để nạp, đặc biệt là khi chúng sư dụng hình ảnh và âm thanh (mà nhiều applet như vậy). Vì Java rất được ngưỡng mộ, nên nhiều người dùng Web sẵn sàng treo máy chờ để tìm cho được trang có tăng cường Java. Nhưng sẽ như thế nào, nếu Web site mà họ phải chờ cho đến lượt lại là đồ dỏm, và toàn bộ thời gian cũng như tiền bạc bỏ ra là vô ích? Bạn có thể tin chắc họ sẽ chuyển
- ngay đến trang Web khác. Và càng phải đợi lâu thì họ càng có ấn tượng thù ghét hơn đối với site xúc phạm đó. Mặt khác, site nào thực sự có ích hoặc hấp dẫn thì càng nhiều khách thăm - kể cả được đánh dấu lại để truy cập nhanh sau này,nghĩa là site đó được khách tái thăm nhiều lần. Chỉ có một cách duy nhất để bạn biết rõ kiểu thiết kế nào tốt hay xấu là phải dùng qua nhiều lần đối với cả hai loại. Phương pháp duy nhất để thực hiện điều đó là phải lướt trên Web. Nếu bạn không lướt trên Web hoặc không phân biệt được site nào xấu tốt, thì hiện tại sẽ không có một cơ hội nào để lao vào cuộc. Sự chuẩn bị đó không chỉ nên làm, mà tuyệt đối phải làm. Hãy nghĩ điều này như là một nhiệm vụ được giao, thực chất không khác gì một chuyến du lịch vòng quanh thế giới với yêu cầu phải chụp ảnh và ghi chép ở mọi điểm dừng chân. Đó thực sự là tất cả những gì bạn phải làm. Hãy lướt ngay trên Web và đánh dấu lại các site mà bạn thích. Hãy đọc phần "Tìm kiếm các applet tốt nhất trong thế giới điều khiển" (trong chương này để biết cách lướt qua các Web site, cách đánh dấu để truy cập nhanh sau này, cách tìm các applet trong đó, và cách lưu lại mã nguồn của những trang mà chũng biểu hiện để tham khảo về sau. Qua những trình bày trên, không có nghĩa là bạn phải trì hoãn việc đưa các applet vào trang Web của mình cho đến khi đã tìm tòi rộng khắp trên Web và chắt lọc ra được những tinh tuý của nó. Tốt nhất hãy tập luyện kỹ năng nhúng applet song song với việc hình thành các sở thích riêng trong thiết kế trang. Vì bạn tạo ra các trang Web trên chính chiếc náy của bạn, cho nên chỉ có bạn là người duyệt xem chúng trước khi tải lên máy Web Sever. Như vậy, Web site của bạn là một "bán thành phẩm" được hoàn chỉnh ngay trên ổ cứng của mình. Bạn,và chỉ một mình bạn mà thôi, sẽ quyết định khi nào thì một trang là hoàn hảo để đưa ra, cho nên bạn có thể gọt dũa bao lâu tuỳ ý. Được phép chọn dùng hay không Khi đi ngang qua một applet trên Web mà bạn muốn nhặt lấy để đưa vào trang của mình thì bước kế tiếp là phải thực hiện một động tác thẩm tra nhỏ để biết bạn có được phép sử dụng applet đó hay không. Có một số applet tuyệt hảo, nhưng không phải là loại được quyền chọn dùng. Bạn có thể biết chắc một applet hoàn toàn nằm ngoài phạm vi công cộng nếu nó không cung cấp một thông tin nào giải thích cách sử dụng applet đó trong các trang riêng của bạn. Dĩ nhiên đây là một ý tưởng tốt để xem xét toàn bộ site trước khi phải từ bỏ. Nhưng nếu các chi tiết này không được cung cấp, bạn không có cách chọn lựa nào khác là vẫn phải tiếp tục. Applet là những chương trình nhỏ, nếu dùng chúng mà không được phép thì cũng phạm luật giống như đi vào cửa hàng và chôm một hộp phần mềm bày trên giá. Rất may là các phương tiện chuyển tải applet trên Web đều cho phép tự do lấy, và hàng ngày được bổ sung thêm một lượng lớn. Hầu hết các applet này đều mô tả một cách chi tiết và chính xác cách thức để bạn có thể đưa chúng vào trong các trang riêng của mình. Cho nên, trừ trường hợp bạn muốn tìm mua một số applet lạ, còn thì bạn có nhiều cơ hội để tìm được đúng những gì mà bạn cần, đơn giản chỉ bằng cách lướt trên Web. Đặt hàng một applet soạn theo yêu cầu Nếu đã tìm khắp trên Web mà vẫn không thấy một applet có sẵn theo ý muốn, bạn luôn luôn có thể đặt hàng một applet được xây dựng theo các yêu cầu của bạn. Nhưng nên nhớ, các applet biên soạn theo yêu cầu giá không rẻ, tuỳ theo công việc có liên quan, bạn có thể trả giá từ 50 USD đến 100 USD cho những loại công việc cơ bản nhất.
- Một số lượng đông đảo các chuyên gia Java tự phong gần đây đã có mặt trên Web, và hứa hẹn sẽ tạo ra những applet xuất sắc với giá phải chăng. Nếu bạn quyết định phải có một applet Java đặt hàng cho mình, bạn hãy tiến hành một cách an toàn theo những lời khuyên sau đây: -Chỉ chọn hãng nào có kinh nghiệm: Tìm những công ty được khách hàng giới thiệu và có các ví dụ mẫu về công trình của họ được trình bày nổi bật trên site (hoặc những hãng sẵn lòng cung cấp ngay những mẫu đó khi có yêu cầu). -Đừng chấp nhận những lời giới thiệu suông. Phải tiếp xúc với từng khách hàng và đặt các câu hỏi có định hướng, như "Công việc gì đã được thực hiện?", "Làm việc đó mất bao lâu?" "Giá bao nhiêu?" và "Có thể giới thiệu công ty này cho công việc của tôi không?" _Đi nhiều cửa hàng. Những gì mà công ty này làm với giá 500 USD, thì công ty khác có thể chỉ làm với 100 USD hay ít hơn. Nhưng nên nhớ, giá cả không phải là tất cả, mà uy tín của nhà phát triển mới là phần quan trọng nhất. Web có một diễn dàn, trong đó tất cả những người dùng có một máy tính với một modem đều có thể tự xưng là chuyên gia biên soạn Java. Đừng tin vào những điều đó. Tìm kiếm các applet tốt nhất trong thế giới điều khiển Một trong những điều thách thức nhát khi đưa Java vào các trang Web của bạn là phạm vi các khả năng chọn lựa rộng đến chóng mặt mà bạn có trong tay khi đã kết thúc việc tìm kiếm applet (hoặc các applet) sẽ được đưa vào các trang của bạn. Nếu bạn đã từng bị xoay chong chóng trên Web với một brower hiểu Java, thì bạn sẽ biết chính xác điều này. Mỗi lần tìm lại thấy xuất hiện các applet mới mẻ đầy cám dỗ, sẵn sàng để được sử dụng trog những trang riêng của bạn. Bạn có thể cài một số lượng applet bất kỳ vào trong một trang Web. Nhưng đừng quá tham. Mỗi applet sẽ phải mất một thời gian để tải từ Internet xuống. Kất quả là bất kỳ ai đến thăm trang Web có nhiều applet đều phải đợi rất lâu để các applet đó đủ thời giờ di chuyển trên mạng - điều này có thể làm cho mọi người lảng tránh site của bạn. Với các applet, cũng như với các trang Web nói chung, bạn nên cân nhắc kỹ về thiết kế tổng thể của trang trước khi thực sự xây dựng nó. Căng buồm lên đi vào cuộc tìm kiếm các applet hảo hạng Nếu bạn không biết chắc sẽ bắt đầu cuộc tìm kiếm applet của mình từ đâu, thì cũng đừng lo. Bạn có thể bắt đầu duyệt từ bất kỳ trang nào, cứ để cho chuột của bạn dẫn đi theo nhiều hướng. Bạn có thể tiến từ trang này đến trang khác, từ site này đến site khác hoặc cách quãng. Tuy nhiên, nên từ từ trong giai đoạn bắt đầu này, vì bạn sẽ phải hình thành dần một "khẩu vị" riêng trong việc thiết kế trang Web. Hãy tìm hiểu về những phong cách lướt Web khác nhau, và cố gắng thử tất cả. Nên nhớ, bạn cần phải luyện tập các kỹ năng thiết kế trang Web của mình, và điều này đòi hỏi bạn phải xem kỹ các trang nhưng khác với cách xem của những khách du lịch. Đồng thời, vì có nhiều cách lướt Web khác nhau, nên yêu cầu bạn phải kiểm tra trang bằng tất cả các cách đó. Khi lướt Web, bạn sẽ hình thành dần sở thích riêng đối với việc thiết kế trang Web. Bạn sẽ biết rõ cái gì mình thích và không thích, đồng thời những thông tin này sẽ được phản ánh vào các quyết định thiết kế của bạn sau này. Những gì làm cho một site có tăng cường Java mạnh lên hoặc yếu đi đều do sở thích rieng của từng người quyết định, song một Web site hoản hảo phải có các chất lượng sau đây:
- Mới mẻ. Các applet trên site này không giống như các applet cũ mà mọi người đều dùng. Nếu một applet đã xuất hiện treen một nửa số site hiện hành, thì khi dùng nó liêu site của bạn có gây được sự chú ý không? Có lẽ là không. Song nếu bạn không thể tìm được cho mình những applet thuộc loai duy nhất, thì hãy cân nhắc để sắp xếp những applet cũ đó nằm rải rác không dồn vào một chỗ. Hấp dẫn. Bản thân site đó không bị nhồi nhét quá nhiều applet, hình ảnh, v.v... Gặp một màn hình xấu xí, những người sử dụng sẽ quay mặt đi ngay trước khi bạn có thể biểu diễn những trò ảo thuật. Trang trọng. Không có gì có thể đánh bại một trang Web làm cho những người xem phải thốt lên "Chà!" một cách ngưỡng mộ. Hữu ích. Cùng với sự hấp dẫn và trang trọng, trang của bạn còn phải là cái mà nhiều người có thể sử dụng được. Mọi người lướt trên Web đều thích tìm ra những cái hữu ích cho mình, Nếu site của bạn có ích, mọi người sẽ đến. Tương tác. cuối cùng, site của bạn phải có khả năng tương tác với người dùng. Nếu họ có thể làm một số cài gì đó với các applet trong site của bạn khi chơi, học, hay làm việc, nó sẽ trở thành vừa có ích vừa thích thú. Trên hết, người dùng sẽ thích những trang vừa có ích vừa vui, hơn là chỉ có ích mà thôi. Có một số Web site được dành riêng để trưng bày các site và các trang tôi nhất đã đưa ra, và có nhiều Web site chuyên dùng cho việc biểu dương các site và các trang tốt nhất. Để tìm các site tốt nhất và tồi nhất trên Web, chỉ cần sử dụng cơ cấu tìm kiếm và nhập các từ khoá WORST WEB và BEST WEB vào trong câu hỏi của bạn. Thả neo bằng các thẻ đánh dấu Khi phải đánh dầu một chỗ nào đó trong cuốn sách in, bạn phải xé một mảnh giấy và đặt vào giữa hai trang. Bạn cũng có thể ghi một số điều gì đó lên mảnh giấy này để nhớ lý do tại sao lại đặt nó vào đây. Khi sử dụng Web bạn cũng làm những việc tương tự. Nhưng đừng có bận tâm về việc tìm mảnh giấy và bút chì. Nên nhớ, đây là thời đại điện tử, nên bản sẽ sử dụng một thẻ đánh dấu ảo. Khi gặp một trang Web có tăng cường Java hấp dẫn, bản hay đánh dấu nó! Các brower của Web đều cho phép bạn đánh dấy hay liên kết nóng (hotlink) các trang Web để có thể truy cập nhanh sau này. Trong Netscape Navigator, tính năng này gọi là bookmarking; còn trong Microsoft Internet explorer là Favirites. Khi đánh dấu một trang, bạn sẽ có thể quay lại nó một cách nhanh chóng để trí nhớ được nhắc lại sau khi đã bị mụ mẫm đi vì phải xem đến hành trăm trang có Java khác. Khi tìm kiếm sự cảm hứng Java trong Web, bạn phải ghi thêm chú thích vào các thẻ đánh dấu mà bạn thực hiện. May mắn là hầu hết các browser đều cho phép bạn nhập các ghi chú này vùng lyvs với việc thực hiện đánh dấu. Trên Netscape Navigator chẳng hạn, bạn chọn Boomarks - Go to Bookmarks thì một cửa sổ riêng sẽ xuất hiện, trong đó có chứa tất cả các thẻ đánh dấu mà bạn đã tạo nên từ trước. Ngay khi có một site làm cho bạn quan tâm (hoặc rất tốt hoặc rất xấu), bạn hãy đánh dấu nó như bình thường và chọn Item Properties trong cửa sổ thẻ đánh dấu (hoặc nếu bạn sử dụng hệ thống Windows, bạn có thể nhấn chuột lên thẻ đánh dấu này bằng phím phải). Cửa sổ Properties (các thuộc tính) đặc biệt sẽ mở ra, trình bày những chi tiết về thẻ đánh dấu (như tên gọi và URL của nó chẳng hanh) đồng thời cũng cung cấp cho bạn một khoảng trống để ghi thêm các chú thích. Tại đây bạn có thể đưa vào các ấn tượng đầu tiên của mình về site đó.
- Phải bảo đảm ghi lại các ấn tượng đầu tiên về trang vào đứng thời điểm mà bạn thực sự đánh dấu nó. Các ấn tượng đầu tiên của người dùng đối với một site rất quan trọng vì chúng có thể làm cho site thành công hay thất bại. Bạn cần thể hiện cảm giác về những gì hấp dẫn và chán ghét đối với người dùng Web, và chỉ có một cách là tiếp xúc trực tiếp với các trang Web. Cùng với việc ghi các ấn tượng đầu tiên của bạn về một site, hãy xem xét để xếp hạng nó và ghi điểm kèm theo các thú thích. Bạn có thể chọn bất kỳ hệ thống xếp hạng nào tuỳ ý, cho đến khi tìm được một cách phân biệt giữa các site tốt và site xấu. Ví dụ, bạn có thể chọn hệ thống xếp hạng 1-10, trong đó số nhỏ đại diện cho các site xấu, còn số lớn đại diện cho site tốt, và 10 dành cho site tốt nhất trong các site tốt. Đào tìm kho báu trong mã nguồn Chỉ thiết lập các thẻ đánh dầu thôi thì chưa đủ. Bạn còn phải liếc ra sau các màn che để xem mã HTML được dùng để tạo ra các trang WEb. Nhờ xem kỹ mã nguồn HTML tạo nên các trang gây cảm hứng cho bạn, bạn sẽ biết rõ công thức pha chế của các trang Web hợp "khẩu vị" đó. Tất cả các trình duyệt đều có chức năng cài sẵn cho pohép dễ dàng xem mã nguồn phía sau trang Web. Đối với Netscape Navigator, bạn chỉ cần chọn View - Document Souce. Các browser khác cũng có các chức năng menu tương tự, mặc dù tên của chức năng và menu có thể không giống nhau. (Trong Microsoft's Internet explorer, bạn chọn View-Source) Khi xem mã nguồn của trang Web, bạn có thể tìm thấy mọi thứ mà bạn cần để biết trang Web đã được tạo ra bằng cách nào. Và, quan trọng hơn cả là bạn xem được công thức pha chế mà người ta dùng để tạo nên trang Web từ đầu! cụ thể, bạn muốn xem trang này đang sử dụng các applet nào, nếu có. Nhắc lại, đâu là một thủ tục đơn giản. Bạn chỉ cần gọi tính năng Find của browser và tìm từ applet. Cách hoạt động của qui trình này đối với Netscape Navigator như sau: 1. Nhấn Ctrl+F (hoặc +F nếu bạn dùng máy Mac) Khác với Microsoft Explorer, Netscape không cho bạn chức năng menu đối với tính năng Find khi xem mã nguồn của trang. 2. Khi hộp thoại Find xuất hiên, bạn gõ từ applet và nhấn vào nút Search! Nếu trang đang xem có dùng applet Java, bạn sẽ tìm thấy thr trong mã nguồn HTML của nó. Tại thời điểm này, bạn được tự do sao chép và dán toàn bộ thẻ vào tài liệu văn bản để tham khảo sau này. Hoặc tốt hơn, bạn có thể cất giữ toàn bộ tập tin mã nguồn vào máy tính cá nhân của mình. Sau đó, bạn cũng muốn biết có còn những applet nào khác chứa trong trang hay không, và do đó bạn vẫn tiếp tục tìm. 3. Tiếp tục tìm kiếm cho đến khi tìm thấy tên và các thông số cài đặt cảu tất cả các applet trong trang. Nên nhớ, từ applet có thể xuất hiện trong thẻ dưới dạng chức thường hoặc chức hoa, mặc dù nên dùng chữ hoa cho dễ đọc. Rất may, theo ngầm định tính năng Find trong hầy hết các browser đều không lưu ý kiểu chức (nếu browser của bạn không như vậy, hay tìm một tuỳ chọn trong cửa sổ Find cho phép khẳng định kiểu chữ sẽ được bỏ qua). Kết quả bạn sẽ tìm được tất xả các thẻ trong tài liệu, bất kể bằng từ applet hoặc APPLET.
- Dĩ nhiên việc xem mã nguồn tài liệu theo cách trực tuyến này không mấy thuận lợi cho bạn vì phải tốn lệ phí trực tuyến. Bạn sẽ phải nối với Web và xem lại mã nguồn mỗi khi cần nhớ lại các chi tiết của cách thức được dùng để tạo nên trang đó. Tuy nhiên, bạn không cần phải có trí nhớ của Einstein để nhớ lại những đặc trưng của dạng thẻ; máy tính của bản đã thực hiện việc này. Đó là local storage (bộ nhớ tại chỗ), thực chất là lưu tập tin trên ổ cứng của bạn. Chiếm lĩnh và mang về nhà Sau khi đã tìm thấy trang gây được cảm hứng, tại sao không tải luôn cả mã nguồm HTML của nó xuống máy tính bạn, tại đây bạn có thể xem nó bất kể thời gian nào mà không mất xu nào cho lệ phí trực tuyến? Không có lý do nào bắt buộc bạn phải nối với Web để xem mã nguồn khi đã có chính trang đó trên máy của riêng bạn. Cất giữ mã nguồn của một trang Web rất dễ dàng. Tất cả công việc phải làm chỉ là nhấn chuột vào tuỳ chọn Save của browser (trong Netscape Navigator, bạn chọn File-Save từ menu của browser). Cần nhớ, với Netscape Navigator, bạn phải chọn Save trong khi đang duyệt chính trang Web đó, chứ không phải mã nguồn, vì không có chức năng menu nào cho bạn dùng khi đang xem mã nguồn. Khi lưu một trang Web, phải bảo đảm đã gán cho trang đó một tên, tiếp theo là đuôi mở rộng. HTML (hoặc .HTM). Lưu tài liệu theo cách này bạn sẽ dễ dàng nhận biết nó có chứa mã nguồn của trang Web. Đồng thời, bạn cũng phải bảo đảm lưu trang Web ở dạng HTML nếu được; nếu không, bạn sẽ lưu tài liệu đó như một văn bản đơn giản chứ không phải là mã nguồn! Mặc dù Netscape Navigator tự động gán dạng HTML mặc định khi lưu các trang Web vào đĩa, nhưng các browser khác có thể không như vậy. Nếu bạn không biết chắc dạng nào browser dùng để lưu trang, thì chỉ việc mở tài liệu đó ra xem bằng một trình xử lý văn bản (hoặc bất kỳ chương trình nào có khả năng xem bằng mộ trình xử lý văn bản đơn giản). Nếu dạng thức đó là HTML, bạn sẽ nhìn thấy mã nguồn này ngay tức khắc. Còn nếu không phải, hay quay về lại browser rồi lại tiến hành lưu trang đó một lần nữa - lần này dùng dạng HTML. Cũng như mọi tài liệu khác, khi lưu trang Web, bạn phải chọn một vị trí trên ổ cứng cho nó. Nên tạo ra một thư mục mới cho từng site và lưu các trang lấy ra từ site đó trong thư mục này. Dĩ nhiên, bạn có thể lưu mã nguồn ở bất cứ đâu tuỳ thích trong máy của mình. Chỉ cần đảm bảo đã ghi lại mơi cất nó để có thể tìm laị sau này. Sau khi đã tải mã nguồn của trang Web xuống máy tính cá nhân của mình, bạn có thể xem nó với browser của bạn bằng cách vào chức năng thích hợp trong menu File. Với Netscape Navigator, bạn dùng tuỳ chọn Open để có thể xem hoặc mở các trang Web đã lưu trong máy tính của bạn. Khi đã mở một trang Web nằm trong máy tính của mình, bạn có thể gắn thẻ đánh dấu vào nó giống như trang Web tồn tại trực tuyến, để có thể truy cập nhanh mỗi khi cần xem lại sau này. Và cũng giống như các trang Web trong không gian điều khiển, bạn có thể dùng browser để xem mã nguồn của các trang đang lưu trong máy tính - nhưng với các trang địa phương này, bạn không cần vội vã vì không phải trả lệ phí trực tuyến theo thời gian. Tải xuống thêm ngoài mã nguồn Lần đầu tiên tải xuống một trang để truy cập tại chỗ, có thể bạn rất ngạc nhiên khi nhận thấy không có hình ảnh, âm thanh, hoặc các applet đi kèm trong đó. Thực tế này có thể làm thay đổi hoàn toàn dáng vẻ của trang so với khi xem trên Web. Xảy ra điều này vì bạn chỉ tải nguồn, không có gì hơn nữa. Nhưng can gì, vì mã nguồn của các trang Web là quan trọng nhất - Đó là công tức cơ bản để xây dựng nên các trang riêng của bạn.
- Nhưng các trang Web có tăng cường Java đã được tạo ra không chỉ bằng mã nguồn HTML và các hình ảnh như hầu hết các trang thông thường. Lưu toàn bộ trang (mã nguồn, đồ hoạ, âm thanh và các applet) vào ổ cứng của bạn ngay cùng một lúc không mấy dễ dàng. Rất may là lưu các hình ảnh của trang Web lại khá đơn giản. Tuy nhiên, lưu các phân tử khác chứa trong trang, như âm thanh và các applet không dễ dàng lắm. Mặc dù việc lưu giữ tất cả các phần tử chứa trong trang là hoàn toàn có khả năng về mặt kỹ thuật, nhưng đó là một quá trình tẻ nhạt hơn so với việc lưu hình ảnh. Thực ra, cách thực hiện việc này là một điều bí mật không thể chia sẻ. Bạn thấy đấy, lấy các phần tử này ra để cho vào máy tính địa phương của bạn có thể là một việc vi phạm pháp luật! Pháp luật trong lĩnh vực này chỉ là một cái bóng mờ nhạt, vì Web thực thể công cộng được sử dụng để xuất bản các tài liệu cho một cộng đồng rộng lớn. tuy nhiên, các phần tử chính tạo nên những tài liệu đó có thể không được dự kiến cho việc truy nhập riêng tư. Lưu hình ảnh Có lúc bạn muốn thêm nhnữg cái khác, ngoài mã nguồn của trang Web, vào máy tính của mình; nhất là khi bạn lướt ngang qua một trang có chứa hình ảnh được dự định dùng kèm với applet Java, hiện tượng rất thường gặp khi bạn sục sạo Web trong quá trình tìm kiếm cảm hứng cho các trang riêng của bạn. Rất may, hình ảnh thường được tạo sẵn thông qua các trang Web đều miễn phí và không bị hạn chế, nghĩa là bạn có thể sử dụng chúng trong các trang của mình mà không sợ phạm luật. Điều này thực sự có ích và tiết kiệm thời gian, vì các hình ảnh tinh vi và sinh động rất khó tạo ra bằng hai bàn tay trắng. Thay vì phải tự tạo, bạn có thể lấy các hình ảnh trang nhã trực tiếp từ trang Web để dùng với các applet Java của mình. Dĩ nhiên với điều kiện là trang trang mà bạn lấy hình ảnh có công bố rõ ràng rằng những hình ảnh đó được tự do lấy ra, không hạn chế. Với Netscape Navigator hoặc mọi browser hiểu Java có sẵn khác, việc lưu hình ảnh là một khả năng chắc chắn. Tất cả công việc phải làm chỉ là nhấn chuột lên hình theo một cách đặc biệt. Bằng cách nhấn chuột lên hình, bạn sẽ được đưa đến mối liên kết với nó, nếu như hình ảnh đó thực sự là một siêu liên kết. Thực hiện một số động tác, bạn có thể lưu hình ảnh vào đĩa. -Nếu bạn dùng máy Macintosh thì thủ thuật đặc biệt ở chỗ không thả nút chuột sau khi đã nhấn. Công việc phải làm chỉ là nhấn và giữ phím chuột trong khi con trở đặt trên hình, một menu xuất hiện, trong đó có tuỳ chọn để cất hình ảnh vào đĩa. -Đối với người sử dụng Windows, quá trình có khác chút tí. Vì chuột Windows có hai nút nên có thể báo cho browser Web khác, chứ không chỉ đối với Netscape Navigator. Chỉ cần nhấn chuột lên từng hình trong trang bằng kỹ thuật chuột phù hợp đối với hệ máy của bạn, rồi chọn Save Image trong menu vừa xuất hiện. Mối đe doạ duy nhất cho kế hoạch này là các liên kết bị đứt. Giải quyết các liên kết bị đứt Vì trang Web có thể chứa các hình ảnh nằm trong nhiều thư mục khác nhau, hoặc thậm chí trên nhiều server khác nhau, nên có thể bạn phải cấp nhật mã nguồn cho trang đó sau khi đã lưu nó vào máy tính của mình. Ví dụ, bạn đã lưu một trang cùng với tất cả hình ảnh của nó vào trong một thư mục trên máy của bạn. Trừ trường hợp trên Web các hình đều nằm trong cùng thư mục với chính trang đó, còn không thì những liên kết với các hình này sẽ bị đứt. Kết quả là bạn sẽ không nhìn thấy khi mở trang ra trên máy tính bằng browser của bạn, vì bây giờ chúng nằm trong cùng thư mục với trang đó, chứ không phải ở vị trí mà trang Web xác định.
- Cách giải quyết là cập nhật mã nguồn, hoặc tạo ra một cấu trúc thư mục trên máy tính của bạn tương đương với cấu trúc thư mục của Web site mà bạn đã lấy nguồn ra. Bạn nên cập nhật mã nguồn, vì lúc nào cũng thực hiện được biện pháp này, ngay cả khi hình ảnh được tham chiến bằng một URL tuyệt đối. Hơn nữa, bạn có thể làm việc với các URL tương đối chỉ đơn giản bằng cách tạo ra đường dẫn thư mục tương được trên máy tính của bạn. Còn với các URL tuyệt đối thì quá tầm giải quyết của bạn, trừ phi tất cả các URL tuyệt đối này đều đi ngang qua cùng thư mục với bản thân trang, mà điều này rất ít gặp. Trong trường hợp đó bạn không còn cách lựa chọn nào khác là thay mã nguồn của trang để nó cũng dùngmột URL tương đối, vì bạn không thể bắt chước toàn bộ các Web server trên máy tính của mình bằng các cấy trúc thư mục đơn giản. Muốn thay đổi mã nguồn, hãy nạp HTML voà bộ soạn thảo văn bản, như Notepad của Windows (hoặc trình ứng dụng Macintosh Simple Test) rồi cập nhật các tham chiếu HTML. Cuộc chiến chống tắc nghẽn dải thông Rất dễ say mê trong việc tạo ra các trang Web được tăng cường Java chứa đầy ắp âm thành và hoạt hình phức tạp. Làm phong phú cho site của bạn bằng một việc đầy lôi cuốn! Và mặc dù mọi viêc có vẻ như là rất tốt đẹp khi xây dựng các trang như vậy trên máy tính của mình, nhưng bạn sẽ nhận ra sự vướng mắc khi đưa chúng vào cuộc sống trên Web. Như bạn thấy, khi xây dựng các trang tại chỗ bằng mã nguồn HTML, các hình, các applet và các tập tin hỗ trợ (thường là hình ảnh và âm thanh đi kèm applet) đều nằm trên ổ cứng của bạn nên mọi chuyện rất trôi chảy. Tất cả các phần tử của trang đều có sẵn trên máy tính, nên không mất thời gian để chờ chúng chạy trên đường dây, và mọi thức nạp vào browser của bạn hầu như tức khắc. Nhưng khi tải trang đó cùng với tất cả các bộ phận của nó lên Web thì bạn lại phải đối mặt với một trở ngại hoàn toàn khác gọi là dải thông (bandwidth). Bất kỳ ai đến thăm các trang nằm trên World Wide Web đều chịu ơn huệ của dải thông - nó quyết định tốc độ mà mọi thứ chuyển từ đường dây xuống máy tính của người dùng. Nói rõ hơn, dải thông bị hạn chế là một trong các vấn đề khó khăn nhất trên Web hiện nay. Thay vì lướt qua các trang của bạn, như bạn vẫn làm khi trang còn nằm toàn bộ trên máy tính cá nhân của mình, các khách đến thăm site của bạn sẽ cảm thấy như đang bơi trong cát lún vì phải đợi mọi thức được tải xuống, trước khi hưởng được niềm vui. Vì dải thông là một thông số quan trọng đối với đại đa số người dùng Web, nên bạn phải xem xét đến mẫu số chung nhỏ nhất này. Mặc dù bạn có thể cố gắng tự thuyết phục rằng modem 28,8 Kbps là chuẩn mực, và giấc mơ về modem cáp và ISDN tốc độ cao sẽ thành sự thực trong tương lại không xa, thì nhiều người vẫn đang kết nối vào Internet ở tốc độ 14,4 Kbps hoặc thấp hơn. Để tỏ ra lịch sự và tươm tất đối với những khách thăm Web site của mình, bạn hãy đưa ra cho mọi người các trang được tăng cường Java của mình mà không định ra hình phạt đối với những ai truy cập chậm; bạn phải lưu ý khi lập kế hoạch cho các trang Web: cân nhắc kỹ lưỡng vấn đề dải thông. Mặc dù các applet rất nhỏ và truyền trên đường dây không mất thời gian, nhưng các tập tin đồ hoạ và âm thanh mà chúng thường sử dụng thì lại tốn thời gian kinh khủng. Bạn có thể thực hiện một số việc để giảm bớt thời gian truyền tải và đề phòng tắc nghẽn khi tải các tập tin này qua mạng. Đánh giá các tập tin âm thanh Khi làm việc với các tập tin âm thanh, Java chỉ hỗ trợ dạng âm thanh của Sun. Các tập tin dùng dạng này có đuôi mở rộng .au. Nếu bạn có tập tin âm thanh không dùng uLaw, như tập tin .wav của Windows chẳng hạn, bạn phải chuyển nó thành dạng uLaw nếu bạn định dùng nó với một applet.
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Lập trình Java cơ bản : Tổng quan lập trình Java part 1
5 p |
696 |
247
-
Ebook về Java
26 p |
260 |
82
-
Biên tập và trình bày bản đồ
8 p |
200 |
77
-
Chương 14: UML là gì?
4 p |
290 |
75
-
Java là gì? Và tại sao bạn cần quan tâm?
26 p |
261 |
71
-
Codeigniter Framework: Tương tác cơ sở dữ liệu trên model
11 p |
103 |
30
-
Lập trình Java cơ bản : Tổng quan lập trình Java part 5
5 p |
63 |
19
-
Học PHP -Bài 1 Php là gì
6 p |
60 |
15
-
Tìm hiểu về các tiến trình chạy ẩn trong Windows
17 p |
45 |
13
-
Tại sao phải tối ưu mã lệnh?
13 p |
73 |
12
-
Tường lửa - Tai sao ban nên sư dung môt tương lưa may tinh Phần I
5 p |
54 |
12
-
Khả năng liên tác và mã lệnh không được quản lý Microsoft .NET phần đầu
8 p |
53 |
7
-
14 tiện ích miễn phí độc đáo Có khi nào bạn tự hỏi tại sao mình lại phải
17 p |
42 |
6
-
Tạo và chia sẻ tài liệu với bạn bè trên Facebook với Docs
8 p |
26 |
3
-
What Objects are and Why They're Useful
5 p |
50 |
3
-
Bài 13 Mục tiêu: Kết thúc bài học này, bạn có thể: Hiểu con trỏ là gì, và
19 p |
25 |
2
-
Facebook Hashtag là gì ?
6 p |
51 |
2

WARC-Type: response

Content-Type: application/http; msgtype=response

WARC-Identified-Payload-Type: application/xhtml+xml

Server: Apache/2.2.31 (CentOS)

Connection: close

Pragma: no-cache

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Set-Cookie: TLDEVNamespace=6hmvsllka6u0daht4c1035v6m5; path=/; domain=.tailieu.vn; HttpOnly

Vary: Accept-Encoding

Content-Type: text/html; charset=UTF-8


markdown:
# Lệnh số 02/2001/L-CTN
Chia sẻ: Son Nguyen | Ngày: | Loại File: PDF | Số trang:1
52
lượt xem 5
download
lượt xem 5
download
![](http://image1.tailieu.vn/document/thumbnail/2009/20091124/lawbmhc3/80x100/725.jpg)
##
Lệnh số 02/2001/L-CTN
Mô tả tài liệu
[Vui lòng tải xuống để xem tài liệu đầy đủ](javascript:void(0);)
Download
![](http://static1.tailieu.vn/b2013az/templates/version1/default/images/down16x21.png)
Lệnh số 02/2001/L-CTN về việc công bố pháp lệnh Bảo vệ bí mật nhà nước do Chủ tịch nước ban hành
Chủ đề:
Bình luận(0)
[Đăng nhập để gửi bình luận!](javascript:void(0);)
CÓ THỂ BẠN MUỐN DOWNLOAD

Set-Cookie: TLDEVNamespace=i3f22q6hkqbs7bvlsuej34enu3; path=/; domain=.tailieu.vn; HttpOnly