권장 : ASP 튜토리얼 : 의사-파라미터를 생성하기위한 ASP 팁 이틀 전, 나는 사내 버전의 Enterprise Search Engine에서 작업하고 있었고 일부 사이트는 사이트 컨텐츠에 연결할 수 있음을 발견했습니다. . 나는 그것을 이상하게 보았고 데이터베이스 ID의 자동 번호 지정 규칙에 따라 연결되어 있음을 발견했습니다. ~~ 나는 여가 시간에 다음과 같은 것을 만들었습니다. 향후 ASP 프로그램을 작성하는 모든 사람들에게 도움이되기를 바랍니다! % ''// 지정된 숫자의 임의 숫자 생성 '// guid도 사용할 수도 있습니다.
ASP 프로그램과 HTML 코드를 혼합하여 발생하는 유지 보수 어려움을 피하기 위해이 기사는 템플릿을 사용하여 프로그램과 페이지를 더 쉽게 할 수 있도록하는 방법을 소개합니다.
ASP를 사용하여 사이트를 만들 때 프로그램 코드와 HTML 코드가 ASP 파일에 혼합되는 상황이 종종 있습니다. 이를 수행하는 데는 많은 단점이 있습니다.
1. 프로그래밍시, 페이지 레이아웃을 설계하고 배열해야한다는 것은 말할 것도 없습니다. 이로 인해 코드가 혼란스럽고 이해하기 어려워지고 불규칙적입니다.
2. 페이지의 모양을 변경해야 할 때 HTML 부분을 변경해야 할뿐만 아니라 유지하기가 쉽지 않은 ASP 코드를 변경해야합니다.
그렇다면 어떻게 이러한 문제를 피할 수 있습니까?
답은 템플릿 파일을 사용하여 ASP 코드와 HTML 페이지를 분리하는 것이며 모든 문제가 해결됩니다. 템플릿을 사용하면 다음과 같은 이점이 있습니다.
1. 전체 사이트의 모양은 매우 짧은 시간 안에 교체 될 수 있습니다.
2. 프로그래머가 HTML 코드를 터치하지 않고 추상 프로그래밍을 할 수 있도록합니다.
3. 이전 템플릿을 재사용 할 수 있습니다.
PHP를 사용한 프로그램은 PHP에 템플릿 프로그램 (FastTemplate)이 있음을 알게됩니다. 현재 문제는 ASP에서 유사한 기능을 구현하는 방법입니다.
Microsoft의 ASP에는 vbscript와 jscript의 두 가지 스크립트가 있습니다. 그들은 모두 정규 표현 객체 (Regexp)와 함께 제공됩니다. 문자열 객체 및 regexp 객체를 사용하여 템플릿 함수를 쉽게 구현할 수 있습니다. Mu Feng은 이것을 사용하여 template.jscript.inc 파일을 작성 했으며이 파일의 내용은 기사 끝에 첨부됩니다. 유능한 독자는 자신의 요구에 따라 향상 될 수 있습니다.
다음은 사용 방법에 대한 설명입니다. 이 파일은 jscript로 작성되었으므로 (물론 VBScript로 쉽게 변환 할 수 있습니다), 기본 스크립팅 언어는 jscript로 설정되어야합니다. 즉, ASP 프로그램의 첫 번째 줄은 다음과 같아야합니다.
먼저 템플릿 클래스의 사용을 소개하겠습니다.
1. 템플릿 개체 만들기 : 템플릿 (경로)
매개 변수 : 경로 (문자열 유형) HTML 템플릿 파일 스토리지 경로.
새 연산자를 사용하여 템플릿 객체를 만듭니다.
예:
vartpl = newtemplate (c : // 템플릿);
이 프로그램에서는 tpl.tplpath를 사용하여 템플릿 경로를 얻거나 tpl.tplpath를 사용하여 템플릿 경로를 변경할 수 있습니다.
좋다:
tpl.tplpath = d : // 템플릿;
2. 템플릿 파일로드 : template.load (이름, 파일)
매개 변수 : 이름 (문자열 유형)은 템플릿 변수 이름입니다.
파일 (문자열 유형) 템플릿 파일 이름. 이 파일은 HTML 템플릿 경로에 저장됩니다.
파일 파일을 템플릿 변수 이름으로 읽습니다.
예:
tpl.load (main, test.htm);
현재 템플릿 변수 메인에는 파일 test.htm의 내용이 포함되어 있습니다.
tpl.main을 사용하여 템플릿 변수 메인에 액세스 할 수 있습니다.
예:
%= tpl.main%
방금 읽은 Test.htm 파일의 내용이 표시됩니다.
3. 템플릿 분할 : template.split (이름)
매개 변수 : 이름 (문자열 유형)은 템플릿 변수 이름입니다.
서브 테드 플레이트를 이름으로 분해하십시오.
예:
먼저 위의 예에서 test.htm 컨텐츠가 다음과 같이 가정 해 봅시다.
-
이것은 기본 템플릿입니다. 다음은 다음과 같습니다.!#tpldefsubsub sub-template 및
! #tpldefthird 템플릿. ! #tplendthird
! #tplendsub
-
그래서:
tpl.split (메인);
실행 후 새 템플릿 변수 서브 및 세 번째가 생성되며 해당 내용은! #tpldefsub와! #tplendsub 사이의 문입니다.
또한 기본 템플릿 변수의 내용도 변경됩니다.
tpl.main의 내용은 다음과 같습니다. 이것은 주요 템플릿입니다. 다음은 {sub}입니다.
tpl.sub의 내용은 다음과 같습니다. 하위 하위 템플릿, {세 번째}
TPL의 내용은 : 세 번째 템플릿입니다.
TPLDEF 및 TPLEND에 의해 정의 된 명령문 블록은 많은 재가열로 채워져 있습니다.
4. 템플릿 처리 : template.parse (이름)
매개 변수 : 이름 (문자열 유형)은 템플릿 변수입니다.
템플릿의 문자열을 Curly Braces로 교체하십시오.
예 : 이전 예제를 계속하십시오
%= tpl.parse (메인)%
쇼 : 이것은 기본 템플릿입니다. 다음은 하위 하위 템플릿이고 {세 번째}입니다.
예제에서 볼 수 있듯이 Parse는 기본 템플릿의 {sub} 변수 만 대체하며 중첩 방식으로 교체 할 수 없습니다. 이것은 프로그램 유연성을 높이기 위해 의도적으로 설계되었습니다. 그렇다면 기본 템플릿을 어떻게 전체적으로 표시합니까?
예:
tpl.sub = tpl.parse (sub); // 먼저 하위 변수를 처리 한 다음 기본 변수를 처리합니다.
response.write (tpl.parse (main));
5. 템플릿 변수를 사용자 정의합니다.
템플릿 변수를 사용자 정의하는 것은 간단합니다. 할당 문을 직접 사용하여 변수를 정의하고 수정할 수 있습니다.
예:
tpl.hahaha = 이것은 사용자 정의 변수입니다.
tpl.third = 원래 템플릿에서 세 번째 변수를 변경합니다.
JScript는 사례 민감성이므로 상류 및 소문자의 철자에주의를 기울여야합니다. 일반적으로 HTML 템플릿에 정의 된 템플릿 변수는 대문자입니다.
또한 템플릿에 사용 된 TPLPATH, LOAD, PARSE 및 SPRIN 변수는 내부적으로 사용됩니다. 그것들을 사용하지 마십시오. 그렇지 않으면 프로그램에 예외가있을 수 있습니다.
다음은 전체 예입니다.
1 단계 : 먼저 HTML 템플릿 파일을 만듭니다.
여기에서 먼저 HTML 템플릿 파일의 구성을 설명합니다. 우선, 태그가 몇 개 있다는 점을 제외하고는 일반적인 HTML 파일과 거의 다르지 않습니다.
템플릿에는 두 가지 유형의 표시가 있습니다. 먼저 예를 살펴 보겠습니다.
test.htm
-! 파일 이름 : test.htm
HTML
제목 예제/제목
헤더
/헤더
몸
이것은 테이블 예입니다.
테이블
!#tplendmaxx10! #tplendmaxx
! ... 여기에는 Maxx 템플릿 변수를 정의하고 값을 10에 할당하는 트릭이 여기에 사용됩니다.
Tr
TDX/TDTDX 제곱/TD
/tr
! #tpldefrow
Tr
td {x}/tdtd {xx}/td
/tr
! #tplendrow
/테이블
위의 {count} 데이터 행이 있습니다.
/몸
/html
-
위에서 볼 수 있듯이 {x}, {xx}, {count}와 같은 표기법은 정의 템플릿 변수입니다. ASP 프로그램에서 교체됩니다.
그리고! #tpldefrow ...!#tplendrow는 문장 블록 행을 정의하는 것입니다. ASP 프로그램에서 행 블록을 여러 번 반복 할 수 있습니다.
2 단계 : ASP 프로그램을 설계하십시오.
test.asp
-%@language = jscript%
!#includefile = template.jscript.inc
비율
vartpl = newTemplate (c : // inetpub // wwwroot);
varstr =;
vari;
tpl.load (main, test.htm);
tpl.split (메인);
tpl.count = 0;
for (i = 1; i = tpl.maxx; i ++) // tpl.maxx는 템플릿에서 10으로 정의됩니다.
{
tpl.x = i;
tpl.xx = i*i;
str+= tpl.parse (행);
tpl.count ++;
}
tpl.row = str;
tpl.maxx =; // 표시되지 않도록이 템플릿 변수를 지우십시오.
비율
%= tpl.parse (메인)%
-
위의 프로그램은 1 ~ 10의 정사각형 테이블을 표시합니다.
일반적으로 템플릿을 사용할 때는 마지막 줄에 페이지를 표시하는 문을 추가하십시오. 따라서 전체 프로그램이 매우 명확하게 보입니다. 현재 템플릿 파일을 편집하여 전체 페이지의 모양을 변경하십시오.
템플릿 파일의 경우 HTML 파일, ASP 파일 또는 프로그램 자체와 같은 모든 파일 일 수 있으며 여러 템플릿을 프로그램에로드하여 함께 작동하여 유연성을 제공 할뿐만 아니라 템플릿 파일과 ASP 프로그램 간의 상관 관계를 최소화합니다.
템플릿을 잘 활용하면 작업이 더 쉬워집니다.
첨부 파일 : 템플릿 소스 프로그램
! 파일 이름 : template.jscript.inc
비율
/**********************************************/
/*templateClass*/
/*작가:*/
/*날짜 : 6-09*/
/**********************************************/
// templatemethodDefine
functiontemplate_parse (이름)
{
if (this [name] == null)
반품;
varreg = newRegexp ({(// w*)}, ig);
varstr = Newstring (이 [이름]);
vararr = str.match (reg);
vari;
if (arr! = null)
for (i = 0; iarr.length; i ++)
{
key = arr.slice (1, -1);
reg = newRegexp (ARR, IG);
if (this [key]! = null)
str = str.replace (reg, this [key]);
}
returnstr;
}
functiontemplate_split (이름)
{
varlen = 0;
바르;
if (this [name] == null)
반품;
vartemplate_exp = newRegexp (!##tpldef+(// w*)*((. | | // n)*)!#tplend+// 1*, i);
while (this [name] .search (template_exp)! = -1)
{
arr = this [name] .match (template_exp);
이 [ARR [1} = ARR [2];
이 [name] = this [name] .replace (template_exp, {+arr [1]+});
this.split (arr [1]);
}
}
functiontemplate_load (이름, 파일 이름)
{
varfso = newActivexObject (scripting.filesystemObject);
varfile = fso.buildpath (this.tplpath, filename);
if (fso.fileExists (파일))
{
varf = fso.opentextFile (파일, 1);
이 [이름] = f.readall ();
}
}
// templateConstructor
functiontemplate (경로)
{
//재산
this.tplpath = 경로;
//방법
this.parse = template_parse;
this.split = template_split;
this.load = template_load;
}
비율
공유 : ASP 튜토리얼 : 간단한 Ajax 예제 ASP 튜토리얼 : Ajax Index.asp에 대한 간단한 예 : 프로그램 코드 HTML 헤드 메타 http-equiv = Content-Type Content = text/html; charset = gb2312 /titleajax 간단한 응용 프로그램 /제목 스크립트 언어 = javaScript // xmlhttprequest 개체 생성 var request = false; {re