권장 : ASP는 XML 데이터베이스를위한 6 개의 고전적인 코드를 제어합니다. No.1-- XML 데이터베이스 Data.xml <? xml 버전 = 1.0?> <crect> <name> caca </name> <qq> 1을 만듭니다
7.2.4 클라이언트 스크립트 오류
지금까지 우리는 ASP의 오류에 대해 배웠습니다. 그러나 ASP는 종종 클라이언트 스크립트가 포함 된 웹 페이지를 만드는 데 사용됩니다. 클라이언트 코드가 포함 된 <cript> 요소가 runat = 서버 속성으로 설정되지 않은 경우 ASP는 서버를 고려하지 않고 웹 페이지 정보를 변경하지 않고 클라이언트에게 전송합니다.
따라서 ASP 웹 페이지가 열리고 브라우저 오류 대화 상자가 표시되면 서버 측의 ASP 프로그램 코드에서 오류를 찾지 않아야합니다. 브라우저는 ASP 프로그램 코드를 볼 수 없으므로 오류를 인식 할 수 없습니다. 클라이언트에 대화 상자가 나타나면 클라이언트 코드에 오류가 있어야합니다.
1. 구문 오류
웹 페이지의 클라이언트 프로그램 코드에 구문 오류가 있으면 스크립트를 클라이언트에 다운로드 할 때 브라우저는 해당 오류가 발생합니다. 웹 페이지의 컨텐츠는 여전히 정상적으로로드 될 수 있지만 (이러한 클라이언트 스크립트 코드에 의해 동적으로로드되지 않는 한) 웹 페이지는 실행을 중지합니다. 사용자는 오류 세부 정보가 포함 된 대화 상자 또는 웹 페이지에 오류가 포함되어 있음을 나타내는 상태 메시지가 표시됩니다.
최신 브라우저는 웹 스크립트 오류의 세부 사항을 숨기고 상태 표시 줄에 작은 오류 아이콘 만 표시하는 경향이 있습니다. IE 4.0 및 IE 5.0에서는 그림 7-14와 같이 인터넷 옵션 대화 상자의 고급 페이지를 통해 일반 오류 대화 상자를 활성화 할 수 있습니다.
그림 7-14 고급 페이지 설정 화면
스크립팅 프로그램 코드에서 클라이언트 오류를 처리하면 서버 측의 오류와 유사하며 웹 페이지는 종종 두 번 클릭하여 서버 디렉토리에서 직접 다운로드 할 수 있기 때문에 쉽습니다. 일반적으로 브라우저에서 결과를 관찰하기 위해 웹 서버와 HTTP를 통해 웹 페이지를 얻을 필요가 없습니다. 유일한 차이점은 일부 서버 상호 작용은 데이터 바인딩 또는 RDS를 사용한 동적로드와 같은 클라이언트 스크립트에서 수행한다는 것입니다.
2. 런타임 또는 시맨틱 오류
클라이언트 스크립트에서는 종종 구문 오류와 런타임 또는 시맨틱 오류가 발생할 수 있습니다. 실제로이 현상은 클라이언트 측에서 매우 일반적입니다. 클라이언트는 서버 측과 같은 스크립트 환경을 제어 할 수 없으므로 사용자가 컴퓨터에서 실행중인 것이 확실하지 않습니다. 실제로 서버는 브라우저 기능과 같은 일부 구성 요소에서만 일반적인 상황을 얻을 수 있습니다.
따라서 클라이언트 객체 또는 특수 버전의 스크립팅 언어 및 속성을 사용하는 스크립팅 프로그램은 제대로 작동하지 않을 수 있습니다. 그럼에도 불구하고 클라이언트 오류 처리는 서버 오류 처리와 유사합니다.
3. 서버에서 생성 된 클라이언트 프로그램 코드
오류가 발생하면 ASP 오류 페이지 규칙에 대한 특별한 예외 (ASP 오류 오류 페이지 규칙에 따라)에 대한 특별한 예외는 ASP 프로그램 코드를 사용하여 서버에서 클라이언트 프로그램 코드를 동적으로 생성하는 것입니다. 예를 들어 ASP에서 평가 작업을 수행 한 다음 데이터를 클라이언트에서 실행하는 스크립트 코드로 전달할 수 있습니다. 가장 쉬운 방법은 데이터를 스크립트 코드에 변수로 삽입하는 것입니다.
<%
'ServerVariables Collection에서 서버 이름을 얻으십시오.
strservernameinasp = request.servervariables (server_name)
%>
<script language = jscript runat = client>
<!- 이전 브라우저에서 코드를 숨 깁니다
var strservername = < % = strservernameinasp %>;
…
ALERT ( '서버 이름은 :'strservername);
…
// 코드가 숨겨져 있습니다
->
</스크립트>
클라이언트에서 ASP가 처리 한 후이 페이지를 처리 한 후에는 다음과 같습니다.
<script language = jscript runat = client>
<!- 이전 브라우저에서 코드를 숨 깁니다
var strservername = wroxbox;
…
ALERT ( '서버 이름은 :'strservername);
…
// 코드가 숨겨져 있습니다
->
</스크립트>
runat = 클라이언트 속성을 무시할 수 있지만 코드가 실행중인 ASP 웹 페이지를 볼 때이 항목을 추가하면 더 명확해질 수 있습니다.
이러한 방식으로 서버 측 데이터베이스에서 특정 위치의 클라이언트 배열에 데이터를 추가하려면 다음 프로그램을 사용하여이를 구현할 수 있습니다.
<script language = jscript runat = client>
<!- 이전 브라우저에서 코드를 숨 깁니다
var artrooks = new Array (10) // 가장 높은 사용 가능한 색인은 다음과 같습니다.
<% 'ASP 처리 시작
intindex = 0
{일부 레코드 세트의 끝에 있지 않음}
strtitle = {데이터베이스 레코드에서 제목 가져 오기}
대답.
& strtitle & '; & vbcrlf
intindex = intindex 1
{데이터베이스에서 다음 레코드로 이동}
고리
…
책 제목 배열로 고객에게 무언가를하십시오.
…
// 코드가 숨겨져 있습니다
->
</스크립트>
Server-Side ASP 프로그램 코드에서 생성 된이 클라이언트 코드는 클라이언트가 실행 중일 때 다양한 책 제목을 만듭니다. 동시에 생성 된 클라이언트 스크립트 오류는 브라우저의 오류 대화 상자에 나타납니다. 오류의 원인은 클라이언트에서 실행할 때 JavaScript 코드에 의해 작성된 배열이 JavaScript 코드에 의해 작성되며 9 개의 책 제목 만 수락 할 수 있기 때문입니다. 서버 측 코드는 9 개 이상의 책 제목을 생성 할 수 있으며,이 책은 소스 데이터베이스의 레코드 수에 따라 결정됩니다. 이것은 다음 클라이언트 코드와 같습니다.
<script language = jscript runat = client>
<!- 이전 브라우저에서 코드를 숨 깁니다
var artrooks = new Array (10) // 가장 높은 사용 가능한 색인은 다음과 같습니다.
ARBERS [0] = 'Instant JavaScript';
ARBERS [1] = 'Professional ASP 3.0 프로그래밍';
요정 [2] = 'Ado 2.5 프로그래머 참조';
…
등
…
요정 [9] = '웹 마스터를위한 ASP 기술';
요정 [10] = 'ASP 프로그래머 참조'; // <- 클라이언트 측 오류가 여기에서 발생합니다
요정 [11] = 'ADSI CDO 프로그래밍';
요정 [12] = '전문 MTS 및 MSMQ 프로그래밍';
…
책 제목 배열로 고객에게 무언가를하십시오.
…
// 코드가 숨겨져 있습니다
->
</스크립트>
이 페이지는 수정 후에 만 제대로 작동 할 수 있습니다. 배열 크기를 늘리거나 데이터베이스의 레코드 수를 제어하여 증가시킬 수 있습니다.
7.3 오류 방지
위에서 일어날 수있는 몇 가지 다른 유형의 오류를 보았고 오류를 찾고있는 것처럼 느낍니다. 다음은 프로그램에 오류를 도입하는 방법에 대한 몇 가지 고려 사항입니다. 작성된 프로그램에 오류가 없음을 보장하지는 않지만 여기에 요약 된 많은 기술이 요약되어 있습니다.
공유 : ASP 동적 웹 페이지를 HTM 정적 페이지로 변환하는 방법 얼마 전, ASP 페이지는 많은 방문자와 함께 실행하기가 매우 느 렸으며 자주 수정되지 않았으므로 직접 정적으로 만들기에는 너무 게으 릅니다. 서버에서 다운로드하여 수정할 때마다 ASP 페이지를 HTM 정적 페이지로 변환하는 방법을 찾아야했습니다. 나는 전에 이것을 본 것입니다