메뉴를 만들어놓고 큰 메뉴에 따라 작은 메뉴를 include 해서 사용하는게 보통입니다. 개발을 하다보면 수많은 include 작업을 하게 되지요. 해서, 이번에는 효과적인 include 에 대한 내용을 살펴보겠습니다.
보통 asp에서는
| <!--#includefile=<%=변수%>--> |
하게되면 인크루드 Error가 납니다.
왜냐하면, include 는 asp를 파싱하여 변수의 값으로 인크루드 하는게 아니고 그 변수명 자체를 가지고 인크루드 하기때문입니다. 그렇다면 무엇이 문제일까요? 파싱 순서에 문제가 있을까요?
그렇다면 이렇게 한번 해보지요. Request.QueryString 으로 mode 값을 받았다고 생각해 봅시다.
mode = Request.QueryString("mode") if mode = a then <!--#include file="a.asp"--> elseif mode = b then <!--#include file="b.asp"--> end if |
이렇게 해보았습니다. 근데 이건 정말 잘 되는군요. 하지만...... 설마 진짜로, Request.QueryString 로 받은 mode 값에 따라서 if 문을 쓰실 건 아니시죠? 메뉴가 한두개도 아닐것이며, 너무 비 효율적이기 때문입니다.
그렇다면
| <!--#include file="<%=mode%>.asp"--> |
이런 효과를 낼수 있는 방법은 정령 없을까요? (이렇게 하면 바로 에러난다고 말씀드렸죠? 에러구문을 써본것입니다.^^)
왜 없겠습니까? 바로!!! 이럴 때에는 다음과 같이 변수값을 받아서
dirFile = Request("mode") + ".asp" Server.Execute(dirFile) |
이렇게 하면 include 가 된답니다. ASP 3에서부터 지원되는 Execute 메서드의 도움으로 말입니다. server.execute 는 asp 언어로 include 와 비슷한 역할을 하기때문에 순차적으로 파싱이 되어 dirFile 의 값으로 된 파일을 인크루드 할수 있습니다.
많이 사용되는 구문이니 기억해 두세요. ^^ |