ASP 페이지에서 vbscript 및 jscript (Cactus Studio · CPCW)
ASP는 다양한 언어 스크립트 프로그램을 관리 할 수 있습니다. 스크립트 코드를 설명하고 내장 기능을 실행할 수 있습니다. ASP 개발 환경은 두 개의 스크립트 엔진, 즉 vbscript 및 jscript를 제공합니다. 그러나 개발자는 적절한 ActiveX 스크립트 엔진을 제공 할 수있는 한 스크립트 언어를 사용할 수있는 한 두 가지 언어에만 국한되지 않습니다.
스크립트 언어의 선택은 종종 여러 가지 이유를 기반으로합니다. 개발자의 가장 친숙한 언어 일 수도 있고, 주어진 프로젝트에 대한 가장 특징적인 지원을 제공하거나 가장 효율적 일 수 있습니다. 다른 환경과 요구 사항으로 인해 스크립트 언어를 선택할 때 다른 요인에주의를 기울여야합니다 스크립트 언어.
지금은 무엇을해야합니까? 이 스크립트를 현재 스크립트 언어로 다시 작성해야합니까? 다시 말해, 스크립트 언어로 다른 스크립트 언어의 내장 기능을 호출 할 수 있습니까? 이 기사에서는 VBScript 스크립트와 JSCRIPT 스크립트가 ASP 응용 프로그램에서 상호 작용하여 두 스크립트 언어의 특성을 극대화하는 방법을 설명합니다.
1. VBScript 및 JScript의 내장 기능
vbscript 및 jscript에서 많은 수의 내장 기능 기능이 동일하거나 유사합니다. 그러나 스크립트 언어로 내장 기능이 다른 스크립트 언어에서 항상 해당 함수는 아닙니다. 예를 들어, vbscript는 JSCRIP에 존재하지 않는 문자열 및 서식 데이터를 작동하기위한 많은 기능을 제공합니다. 이러한 기능에는 strreverse (), filter () 및 formatcurrency ()가 포함됩니다. 반면에, 배열, 문자열 코딩 등을 관리하기 위해 JSCRIPT에서 제공하는 함수는 join (), reverse (), vOR (), 비트 조작, 탈출 () 및 unescape ()와 같은 vbscript에서 정의되지 않습니다. 기다리다.
그렇다면 JScript 프로그램에서 vbscript 함수가 필요한 경우 어떻게해야합니까?
2. 이종 스크립트의 상호 호출
jscript 스크립트의 vbscript 스크립트에서 내장 기능을 호출 해야하는 경우 VBScript 사용자 정의 함수 (여기에서 VBScript를 호출 할 위치)를 작성한 다음이 사용자 정의 기능을 대중처럼 호출해야합니다. jscript 함수 JScript 스크립트에서.
예를 들어, 호출 될 VBScript에서 내장 된 기능이 FormatCurrency () 인 경우 다음과 같은 사용자 정의 기능을 선언 할 수 있습니다.
<script language = vbscript runat = server>
함수 형식 값 (값)
formatValue = FormatCurrency (값)
엔드 기능
< /스크립트>
다음으로 jscript 코드에서 일반적인 JScript 함수처럼 FormatValue ()를 호출 할 수 있습니다. 유사한 방법을 사용하여 vbscript 코드의 jscript 함수를 호출 할 수 있습니다.
동일한 규칙을 적용하면 모든 스크립트에서 사용자 정의 기능을 호출 할 수 있습니다. 그러나 현재 jscript 스크립트에서 매개 변수 (sub)가없는 vbscript 프로세스 (sub)를 호출 할 때는 jscript의 매개 변수가없는 jscript 함수처럼 호출하여 vbscript sub foo 프로세스를 호출해야합니다. .
셋째, 데이터 공유
특정 상황에서는 vbscript 및 jscript 함수의 사용을 혼합하는 것이 매우 유용하지만 다른 언어 스크립트간에 데이터를 공유하는 것이 유용 할 수 있습니다. 이 공유를 구현하는 방법은 매우 간단합니다. 페이지 레벨 문의 변수를 임의로 참조 할 수있는 한 어떤 언어를 사용하든 상관 없습니다.
객체의 방법도 비슷하며 적절한 언어 읽기를 사용하거나 속성의 메소드를 수정하거나 객체를 호출 할 수 있습니다. 물론, 주어진 객체의 속성과 방법은 객체의 인스턴스를 만드는 언어로 정의됩니다. 위의 vbscript 프로세스의 프로세스 호출은 매개 변수가없는 매개 변수로 vbscript 객체를 호출하는 방법이 JScript에서 호출되는 것처럼, 호출 메소드는 JScript의 호출 규칙을 따르고 그 반대도 마찬가지입니다.
넷째, 배열 관리
배열 공유 문제는 약간 더 복잡합니다. 배열은 다른 변수와 마찬가지로 다른 언어 스크립트간에 공유 할 수 있지만 호환되는 문제에주의를 기울여야합니다.
vbscript 배열은 jscript 아래에서 vbscript의 상징, 즉 JScript의 배열 요소 대신 배열 요소의 배열 요소를 참조 할 수 있습니다. 또한 특수 jscript 객체 인 vbarray 객체를 사용하여 vbscript 배열을 JScript 배열로 변환 할 수 있습니다. 다음 코드는 vbscript 배열 myvbarray에서 jscript 배열 myjsarray를 생성합니다.
var test = 새로운 vbarray (myvbarray)
var myjsarray
myjsarray = temp.toArray ()
위의 코드는 먼저 임시 vbarray 객체를 생성 한 다음 ToArray () 메소드를 사용하여 JScript 배열로 변환합니다. 그 이후로, 나는 myjsarray [1]와 같은 일반적인 jscript 배열처럼 myjsarray를 사용할 수 있습니다. 그러나 ToArray () 메소드는 다차 차원 VBaray를 하나의 차원 JScript 배열로 변환 할 것입니다.
jscript 배열은 vbscript에서 더 복잡합니다. vbscript에서 JScript 배열의 메소드와 속성에 직접 액세스 할 수 있지만 jscript 배열의 단일 요소에 직접 액세스하는 방법은 없습니다. 다시 말해, 우리는 다음과 같이 vbscript 스크립트에서 jscript 배열의 길이 속성을 읽을 수 있습니다.
x = myjsarray.length
그러나 아래의 VBScript 코드의 단일 요소를 직접 읽는 것은 불가능합니다.
x = myjsarray (3)
이 문제를 해결하는 실현 가능한 방법은 다음 코드에 표시된대로 변환 프로세스를 수행하는 것입니다.
< %
희미한 온도
희미한 myvbarray
temp = myjsarray.join (,)
myvbarray = split (temp ,,)
%>
여기서 jscript join () 메소드는 배열 myjsarray 요소를 구분으로 쉼표로 문자열로 변환하고 vbscript split () 함수는 문자열을 vbscript 배열로 변환합니다. 여기에 vbscript 환경에서 JScript를 호출하는 조인 방법이 있습니다. 이 예에 따르면, 우리는 jscript 배열에서 vbscript 배열로 변환을 구현하기 위해 사용자 정의 vbscript 함수로 vbarray 객체의 vbarray 객체의 toArray () 메소드를 시뮬레이션 할 수 있습니다.
5, 요약
동일한 ASP 프로젝트에서 다양한 스크립팅 언어를 유연하게 선택하면 이러한 스크립트 간의 상호 작용 능력이 다른 언어로 제공되는 내장 기능을 통합하여 사용될 수 있습니다 jscript 환경에서 사용할 수있는 vbscript 또는 범용 스크립트 라이브러리의 경우.