vbscriptとjscript(cactus studio・cpcw)in aspページ
ASPには、さまざまな言語スクリプトプログラムを管理する機能があります。 ASP開発環境は、2つのスクリプトエンジン、つまりVBScriptとJScriptを提供します。ただし、開発者は、適切なActiveXスクリプトエンジンを提供できる限り、2つの言語のみに限定されません。任意のスクリプト言語を使用できます。
スクリプト言語の選択は、多くの場合、さまざまな理由に基づいています。開発者の最もよく知られている言語である可能性があります。特定のプロジェクトの最も特徴的なサポートを提供するか、最も効率的なものです。さまざまな環境と要件が、スクリプト言語を選択する際に、さまざまな要因に注意を払いますスクリプト言語。
現時点で何をすべきですか?現在のスクリプト言語でこれらのスクリプトを書き換える必要がありますか?言い換えれば、スクリプト言語で他のスクリプト言語の構築された関数を呼び出すことは可能ですか?この記事では、VBScriptスクリプトとJScriptスクリプトがASPアプリケーションで対話して、2つのスクリプト言語の特性を最大化する方法について説明します。
1。VBScriptとJScriptの構築された関数
VBScriptとJScriptでは、多数の構築された関数関数が同じまたは類似しています。ただし、スクリプト言語の構築された関数は、別のスクリプト言語で常に対応する関数ではありません。たとえば、VBScriptは、jscriptには存在しない文字列およびフォーマットデータを操作し、フォーマットするための多くの機能を提供します。これらの関数には、strreverse()、filter()、およびformatcurrency()が含まれます。一方、Array、String Codingなどの管理のためにJScriptによって提供される機能は、Join()、Reverse()、PoW()、BIT Operations、Escape()、Unescape(、およびUnescape()などのVBScriptでは定義されていません。待って。
では、JScriptプログラムでVBScript関数が必要な場合はどうなりますか?
2。異種スクリプトの相互呼び出し
jscriptスクリプトのvbscriptスクリプトでビルドされた-in関数を呼び出す必要がある場合は、vbscriptユーザー定義関数(ここで構築されたvbscriptを呼び出す場所)を書く必要があります。 JScriptスクリプトのJScript関数。
たとえば、vbscriptを構築する-in関数がformatcurrency()である場合、次のカスタム関数を宣言できます。
<スクリプト言語= vbscript runat = server>
function formatvalue(value)
formatvalue = formatcurrency(value)
エンド関数
< /script>
次に、jscriptコードの通常のjscript関数のようにformatvalue()を呼び出すことができます。同様の方法を使用して、VBScriptコードのJScript関数を呼び出すこともできます。
同じルールを適用して、任意のスクリプトのユーザー定義関数を呼び出すことができます。ただし、JScriptスクリプトからパラメーター(sub)なしでvbscriptプロセス(sub)を呼び出す場合、jscriptのパラメーターなしでjscript関数のように呼び出す必要があります。 。
第三に、データ共有
特定の状況では、VBScriptとJScript関数の使用を混合することは非常に便利ですが、異なる言語スクリプト間でデータを共有することも有用です。この共有を実装する方法は非常に簡単です。ページレベルのステートメントの変数を任意に参照できる限り、どの言語が使用されていても。
オブジェクトの方法も似ており、適切な言語読み取りを使用したり、属性のメソッドを変更したり、オブジェクトを呼び出すことができます。もちろん、指定されたオブジェクトの属性とメソッドは、オブジェクトのインスタンスを作成する言語によって定義されます。上記のVBScriptプロセスのプロセス呼び出しと同じように、パラメーターのないパラメーターを使用してVBScriptオブジェクトを呼び出す方法がJScriptから呼び出される場合、コールメソッドはJScriptのコールルールにも従い、逆も同様です。
4番目、配列管理
配列共有の問題は少し複雑です。配列は、他の変数のような異なる言語スクリプト間で共有できますが、互換性のある問題に注意する必要があります。
VBScriptアレイは、jscriptの下のvbscriptのシンボル、つまりjscriptの配列要素の代わりに配列要素の配列要素を参照することで参照できます。さらに、特別なJScriptオブジェクト(VBARRAYオブジェクト)を使用して、VBScriptアレイをJScriptアレイに変換できます。次のコードでは、vbscriptアレイmyvbarrayからjscriptアレイmyjsarrayを作成します。
var test = new vbarray(myvbarray)
var myjsarray
myjsarray = temp.toarray()
上記のコードは、最初に一時的なvbarrayオブジェクトを作成し、次にそのtoarray()メソッドを使用してJScriptアレイに変換します。それ以来、myjsarray [1]などの通常のJScriptアレイのようにmyjsarrayを使用できます。ただし、ToArray()メソッドは、多次元VBARAYを1次元JScriptアレイに変換することに注意する必要があります。
jscriptアレイは、vbscriptからより複雑です。 VBScriptのJScriptアレイのメソッドと属性に直接アクセスできますが、JScriptアレイの単一要素に直接アクセスする方法はありません。つまり、以下に示すように、VBScriptスクリプトのJScriptアレイの長さ属性を読むことができます。
x = myjsarray.length
しかし、下のvbscriptコードを直接読み取ることは不可能です。
x = myjsarray(3)
この問題を解決するための実行可能な方法は、次のコードに示されているように、VBScriptがデフォルトのスクリプト言語であると想定されています。
<%
薄暗い温度
薄暗いmyvbarray
temp = myjsarray.join(、)
myvbarray = split(temp ,,)
%>
JScript Join()メソッドは、ここで配列myjsarray要素を分割としてコンマを持つ文字列に変換し、vbscript split()関数は文字列をvbscriptアレイに変換します。ここに、VBScript環境の下でJScriptを呼び出す結合方法があることに注意してください。この例によれば、jscript関数によってjscriptのvbarrayオブジェクトのtoarray()メソッドをシミュレートして、jscriptアレイからvbscriptアレイへの変換を実装できます。
5、要約
同じASPプロジェクトのさまざまなスクリプト言語の選択には、これらのスクリプト間の相互作用がよりインタラクティブになり、さまざまな言語やその他の機能が可能ですjscript環境で使用できるVBScriptまたはユニバーサルスクリプトライブラリ用。