Академический Документы
Профессиональный Документы
Культура Документы
Mel Anderson
IBM iSeries Technology Center
melander@us.ibm.com
Agenda
• Overview of JavaScript
• Examples of JavaScript
1
IBM eServer iSeries
What is JavaScript?
• A lightweight programming language that runs in a Web browser
(client-side).
2
IBM eServer iSeries
3
IBM eServer iSeries
Functions
• JavaScript instructions are usually grouped
together in a function:
<script language=“javascript”>
function myFunction(parameters) {
// some logical grouping of code
}
</script>
• Like a method, procedure, or subroutine.
• Functions are called by events.
Events
• JavaScript is event-driven.
– Something has to happen before the JavaScript is
executed.
• JavaScript defines various events:
– onClick – link or image is clicked
– onSubmit – a form is submitted
– onMouseOver – the mouse cursor moves over it
– onChange – a form control is changed
– onLoad – something gets loaded in the browser
– etc.
• Events are specified in the HTML code.
4
IBM eServer iSeries
Event example
<html>
<head>
<script language=“javascript”>
function funct() {
// code
}
</script>
</head>
<body>
<img src=“pic.gif” onClick=“funct();”>
</body>
</html>
Variables
5
IBM eServer iSeries
The DOM
• Unlike other programming languages, JavaScript
understands HTML and can directly access it.
• JavaScript uses the HTML Document Object
Model to manipulate HTML.
• The DOM is a hierarchy of HTML things.
• Use the DOM to build an “address” to refer to
HTML elements in a web page.
• Levels of the DOM are dot-separated in the
syntax.
6
IBM eServer iSeries
JavaScript Examples
7
IBM eServer iSeries
Alerts
Code
<html>
<head>
<script language=“javascript”>
function showAlert(text) {
alert(text);
}
</script>
</head>
<body onload=“showAlert(‘This alert displays when
the page is loaded!’);”>
. . .
OR <body onload=“alert(‘This alert…’);”>
8
IBM eServer iSeries
<a href=“javascript:writeHTML();”>Generate
HTML</a>
9
IBM eServer iSeries
Page navigation
10
IBM eServer iSeries
Code
<script language=“javascript”>
function goPage() {
var pg = document.theForm.aPage.value;
location = "page" + pg + ".html";
}
</script>
. . .
<form name="theForm">
<select name="aPage" onChange="goPage();">
<option selected>Choose a page</option>
<option value="1">Page 1</option>
<option value="2">Page 2</option>
<option value="3">Page 3</option>
<option value="4">Page 4</option></select>
<input type=“reset”>
</form>
. . .
Image swap
11
IBM eServer iSeries
Code
<script language="javascript">
function swap(file) {
document.globe.src=file;
}
</script>
. . .
<img name="globe" src="globe.jpg"
onMouseOver="swap('globe2.jpg');"
onMouseOut="swap('globe.jpg');">
Form validation
12
IBM eServer iSeries
Form validation
Form validation
13
IBM eServer iSeries
. . .
<form method="post" name="fields" action="/cgi-bin/pgm"
onsubmit="javascript: return checkAll();">
<p>Field 1: <input type="text" name="f1">
<br>Field 2: <input type="text" name="f2">
<br>Field 3: <input type="text" name="f3">
<br>Field 4: <input type="text" name="f4"></p>
<input type="reset">
<input type="submit" value="Submit">
</form>
. . .
14
IBM eServer iSeries
<input type="reset">
<input type="submit" value="Submit”>
</form>
. . .
15
IBM eServer iSeries
Cookies
• JavaScript provides some limited, persistent
storage, called cookies:
– Data is stored in a text file on the client
– name=value
– Multiple values are delimited by a semicolon
• Use sparingly. There are limits (generally):
– Up to 300 cookies per browser, 20 cookies per web server,
and 4 KB of data per cookie
• Don’t depend on cookies—users can block or delete
them.
Cookies
16
IBM eServer iSeries
HTML code
<body onload=“readCookie();”>
17
IBM eServer iSeries
function deleteCookie() {
if (document.cookie) {
// Get a date and set it to last year
var expDate = new Date();
expDate.setFullYear(expDate.getFullYear() - 1);
18
IBM eServer iSeries
Code
<script language="javascript" src="graph.js"></script>
</head>
<body>
<script>
var g = new Graph(370, 200);
g.scale = 10000;
g.xLabel = "Month";
g.yLabel = "Number of Rants";
g.title = "Rants 2005";
g.setXScaleValues("Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
g.addRow(90000, 80000, 60000, 20000, 10000, 30000, 28000,
15000, 18000, 68000, 92000, 75000);
g.build();
</script>
19
IBM eServer iSeries
Clock
• Use alerts to get values of variables and see which lines are not
getting processed.
20
IBM eServer iSeries
Tutorials
• WebMonkey JavaScript
– http://webmonkey.wired.com/webmonkey/programming/javascript/
• JavaScript Tutorial
• Advanced JavaScript Tutorial
• W3 Schools JavaScript
– http://www.w3schools.com/js/
21
IBM eServer iSeries
Resources
• David Flanagan, JavaScript: The Definitive Guide.
O’Reilly, 1998.
• Webmonkey
http://webmonkey.wired.com/webmonkey/reference/javascript_code_library/
• TamingTheBeast.net
http://www.tamingthebeast.net/scripts/freejavascripts.htm
22
IBM eServer iSeries
Any questions?
The following terms are trademarks of International Business Machines Corporation in the United States, other countries, or both
Rational is a trademark of International Business Machines Corporation and Rational Software Corporation in the United States, other countries, or both.
Intel, Intel Inside (logos), MMX and Pentium are trademarks of Intel Corporation in the United States, other countries, or both.
Linux is a trademark of Linus Torvalds in the United States, other countries, or both.
Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other countries.
SET and the SET Logo are trademarks owned by SET Secure Electronic Transaction LLC.
Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
Other company, product or service names may be trademarks or service marks of others.
All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may
vary by customer.
Information concerning non-IBM products was obtained from a supplier of these products, published announcement material, or other publicly available sources and does not constitute an endorsement of such products
by IBM. Sources for non-IBM list prices and performance numbers are taken from publicly available information, including vendor announcements and vendor worldwide homepages. IBM has not tested these products
and cannot confirm the accuracy of performance, capability, or any other claims related to non-IBM products. Questions on the capability of non-IBM products should be addressed to the supplier of those products.
All statements regarding IBM future direction and intent are subject to change or withdrawal without notice, and represent goals and objectives only. Contact your local IBM office or IBM authorized reseller for the full text
of the specific Statement of Direction.
Some information addresses anticipated future capabilities. Such information is not intended as a definitive statement of a commitment to specific levels of performance, function or delivery schedules with respect to any
future products. Such commitments are only made in IBM product announcements. The information is presented here to communicate IBM's current investment and development activities as a good faith effort to help
with our customers' future planning.
Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon
considerations such as the amount of multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user
will achieve throughput or performance improvements equivalent to the ratios stated here.
Photographs shown are of engineering prototypes. Changes may be incorporated in production models.
23