Server Side Includes (SSI) with ASP


Server Side Includes (SSI) with ASP

People often have identical sections of code spread throughout many ASP pages, typically code at the top of the page (usually referred to as the header) and the lower part of the page (the footer). Similarly, you may have code that performs a certain set of instructions that you are repeating across multiple pages. Consider an example:-

<%
If foobar="yes" then
response.write "YES!"
Else
response.write "NOT YES!"
End if
%>

Ok, ok... it's simple, but imagine that you used this on multiple pages. What's wrong with this picture?

Well... you don't have to think about that long before realising that if you ever wanted to change something about that piece of code, you'd have your work cut out. you would have to change every page... everyone has done this at some stage and luckily most usually take the steps to learn a way around this problem.

If we could save our valuable chunk of code into a file and have that file accessed whenever we needed the code, then we no longer have a problem when it comes to changing things, as we simply update one file. Include files or Server Side Includes (SSI) as they are more commonly known are a powerful way to not only save time when it comes to maintaining and updating a site, but also increase efficiency and speed of that site too!

Ok, lets see how we use an include file... to start with we need to use one of two methods. The first one allows for including files relatively. By that I mean relative to the directory the ASP file that is using the include file resides. The second method includes files virtually. Including files virtually means that the path is taken from the root directory.

Consider that we are going to have a file (/main/somefile.asp) include another file (/includes/someinclude.asp).

To demonstrate, relative inclusion, look at this:-

<%
Response.Write "executing included code now"
%>
<!--#include file="../includes/someinclude.asp"-->
<%
Response.write "done executing included code"
%>

And here, we give an example of the other method, virtual inclusion:-

<%
Response.Write "executing included code now"
%>
<!--#include virtual="/includes/someinclude.asp"-->
<%
Response.write "done executing included code"
%>

Note the slight difference between the two methods. With virtual inclusion, you can move the file that calls upon the include file anywhere without affecting the outcome, because the path is always relative to the root. The same cannot be said however for relative inclusion. If you move a file that is using relative inclusion to a different directory, you'll most likely find the relative path is no longer correct.

From the examples above, you may also notice that both methods, when calling the include do so OUTSIDE of the ASP script block. This because #include declarations are not interpreted by ASP. Include files are included before a single line of ASP is processed which means the following WONT work:-

%lt;%
Page=request.form("page")
%>
<!--#include file="../includes/<%=page%>.asp"-->

We were attempting to perform a dynamic include and I would be the first to admit that the above would be very useful indeed if in fact it were possible. I do intend to cover a few methods that work around this set back but I know you will now be itching to get started right away on using include files to even worry about this, so I will cover it in a future article.

I hope that you have found the above informative and hope it inspires you all to write code that's more efficient and more easily maintained.

Rob Collyer, experienced with 20 years programming knowledge and site administrator of www.webforumz.com">www.webforumz.com - Copyright 2003-2004


MORE RESOURCES:
Iceberg: cuts code, evolves your enterprise - ZDNet
Iceberg: cuts code, evolves your enterprise ZDNet - 11 hours ago It’sa web platform which enables you to make custom, complicated workflow based, high-quality and dynamic; yet stable applications simply, without writing a ... Iceberg for students: developing made simple ZDNet all 2 news articles
Publ.Date : Mon, 08 Sep 2008 02:52:34 GMT

Subscribe to our e-mail newsletters - Computerworld
dBTechno Subscribe to our e-mail newsletters Computerworld, MA - 6 hours ago By Scot Finnie September 8, 2008 (Computerworld) You have to wonder whether Tim Berners-Lee, inventor of HTTP and the Web browser, had a sense of where it ... Video: Tech Test: Google Chrome Lacks Polish AssociatedPress Microsoft Internet Explorer 8 (beta 2 PC Pro IE 8 provides versatility to Web surfing Daily Press ITProPortal - ITworld.com all 387 news articles
Publ.Date : Mon, 08 Sep 2008 07:47:57 GMT

Symphony Services to Develop Next Generation of BMC Software’s Web ... - Business Wire (press release)
Symphony Services to Develop Next Generation of BMC Software’s Web ... Business Wire (press release), CA - 1 hour ago ... experience in security and our development team’s passion for evolving WAM to exceed customer expectations for rigorous Web -based application security. ...
Publ.Date : Mon, 08 Sep 2008 12:04:44 GMT

KDB Should Ask If Lehman Bid `Makes Sense,' Jun Says (Update2) - Bloomberg
BBC News KDB Should Ask If Lehman Bid `Makes Sense,' Jun Says (Update2) Bloomberg - 5 hours ago China in January rejected a plan to allow state-owned China Development Bank to invest in Citigroup Inc. because of concerns of more financial-industry ... KBD chief says banks seeking Lehman deal The Associated Press FSC Official: KDB Hasn't Submitted Global Bank Invest Plan CNNMoney.com South Korean government officials say talks still on MarketWatch Las Vegas Review - Journal - RedOrbit all 890 news articles
Publ.Date : Mon, 08 Sep 2008 08:38:12 GMT

New Avid Services Enable Third Parties to Easily Exchange Avid ... - CNNMoney.com
New Avid Services Enable Third Parties to Easily Exchange Avid ... CNNMoney.com - 51 minutes ago "The Avid Interplay Web services API has alleviated extremely complex development and allowed us to develop more seamless file-based workflows for our ...
Publ.Date : Mon, 08 Sep 2008 13:12:26 GMT

Residential Finance Appoints Jessica Manna as Vice President ... - MarketWatch
Residential Finance Appoints Jessica Manna as Vice President ... MarketWatch - 39 minutes ago Manna's team will direct development of marketing initiatives across all channels - interactive, web development , public relations, direct mail, ...
Publ.Date : Mon, 08 Sep 2008 13:24:11 GMT

Managed Objects Advances Web 2.0 Strategy - MarketWatch
Managed Objects Advances Web 2.0 Strategy MarketWatch - 55 minutes ago NET and Google Web Toolkit (GWT) among others. Support for these powerful and popular platforms allows for rapid development of RIAs integrated with Managed ...
Publ.Date : Mon, 08 Sep 2008 13:07:31 GMT

Symplified Appoints Jason Merrick Vice President of Business ... - MarketWatch
Symplified Appoints Jason Merrick Vice President of Business ... MarketWatch - 1 hour ago Previously he held senior technical services management positions at Teros, a vendor of web application firewalls acquired by Citrix. ...
Publ.Date : Mon, 08 Sep 2008 12:15:35 GMT
UBB Webdesign.com © 2008