Server Side Includes:
Experienced JavaScript programmers know that code reuse is good. Experienced JavaScript programmers also know that JavaScript functions are data types.
So, we should be able to store a JavaScript function inside a Session Variable or an Application Variable, right? Unfortunately, no. The way to reuse JavaScript functions across many pages is to use SSI: Server Side Includes.
<%@LANGUAGE="JavaScript"%> <HTML> <HEAD> <!--#include file="script13a.asp"--> <TITLE><% Response.Write( whatTimeIsIt() ) %> </TITLE> </HEAD> <BODY> <% Response.Write("The date and time are " + DateTime + "<BR><BR>\r") Response.Write("Tomorrow's date is " + Tomorrow + "<BR><BR>\r") Response.Write("Tomorrow will be a " + findDayOfWeek(Tomorrow) + "\r") %> </BODY> </HTML>
Click Here to run the script in a new window.
Look at the code for script13.asp. It calls for an include file via this line:
<HTML> <HEAD> <TITLE>10:57:20 AM </TITLE> </HEAD> <BODY> The date and time are 4/11/2003 10:57:20 AM<BR><BR> Tomorrow's date is 4/12/2003<BR><BR> Tomorrow will be a Saturday </BODY> </HTML>
The final HTML code looks so nice and simple. You'd never know that the Date() object had been torn down and put back together. Below is the include file.
<% function whatTimeIsIt() { var m=new Date() var minute=m.getMinutes() var second=m.getSeconds() var ampm=false if (minute >=0 && minute < 10) { minute=("0" + minute) } if (second >= 0 && second < 10 ) { second=("0" + second) } var hours=m.getHours() if (hours > 12) { ampm=true hours=hours-12 } if (hours==12) { ampm=true } if (hours == 0) { hours=hours+12 ampm=false } if (ampm) { ampm=" pm" } else { ampm=" am" } var myTime=hours + ":" + minute + ":" + second + ampm return myTime; } var DateTime = new Date(); var Month = (DateTime.getMonth() + 1) + "/"; var Day = DateTime.getDate() + "/"; var Year = DateTime.getFullYear(); var DateTime = Month + Day + Year + " " + whatTimeIsIt(); var Tomorrow=new Date() Tomorrow.setDate(Tomorrow.getDate() + 1) Month = (Tomorrow.getMonth() + 1) + "/" Day = Tomorrow.getDate() + "/" Year = Tomorrow.getFullYear() Tomorrow = Month + Day + Year function findDayOfWeek(DateInQuestion) { // format for DateInQuestion is mm/dd/yyyy or m/d/yyyy // and presumes the /'s are present. myRegExp=/\d{1,2}\// myMonth=(parseInt(DateInQuestion.match(myRegExp)) -1) myRegExp=/\/\d{1,2}\// myDay=new String(DateInQuestion.match(myRegExp)) myDay=parseInt( myDay.substring(1,myDay.length) ) myRegExp=/\/\d{4}/ myYear=new String(DateInQuestion.match(myRegExp)) myYear=parseInt( myYear.substring(1,myYear.length) ) DateInQuestion=new Date(myYear,myMonth,myDay) DayOfWeek=new Array DayOfWeek[0]="Sunday" DayOfWeek[1]="Monday" DayOfWeek[2]="Tuesday" DayOfWeek[3]="Wednesday" DayOfWeek[4]="Thursday" DayOfWeek[5]="Friday" DayOfWeek[6]="Saturday" DayOfWeek=DayOfWeek[DateInQuestion.getDay()] return DayOfWeek; } %>