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=falseif (minute >=0 && minute < 10){minute=("0" + minute)}if (second >= 0 && second < 10 ){second=("0" + second)}var hours=m.getHours()if (hours > 12){ampm=truehours=hours-12}if (hours==12){ampm=true}if (hours == 0){hours=hours+12ampm=false}if (ampm){ampm=" pm"}else{ampm=" am"}var myTime=hours + ":" + minute + ":" + second + ampmreturn 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 + Yearfunction 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 ArrayDayOfWeek[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;}%>