VBScript e JScript (Cactus Studio · CPCW) na página ASP
O ASP tem a capacidade de gerenciar diferentes programas de script de idiomas. O ambiente de desenvolvimento da ASP fornece dois motores de scripts, a saber, o VBScript e o JScript. No entanto, os desenvolvedores não se limitam a apenas dois idiomas, desde que possam fornecer um mecanismo de script ActiveX adequado, eles podem usar qualquer idioma de script.
A escolha da linguagem do script geralmente se baseia em muitos motivos diferentes: pode ser a linguagem mais familiar dos desenvolvedores, pode fornecer o suporte mais característico para um determinado projeto ou pode ser o mais eficiente. Ambientes e requisitos diferentes nos fazem prestar atenção a diferentes fatores ao escolher um idioma de script linguagem de script.
O que devo fazer neste momento? Preciso reescrever esses scripts com a linguagem de script atual? Em outras palavras, é possível chamar a função construída de outra linguagem de script em uma linguagem de script? Este artigo explica como permitir que o script VBScript e o script JScript interajam nos aplicativos ASP para maximizar as características da linguagem de dois scripts.
1. As funções construídas de VBScript e JScript
Em VBScript e JScript, um grande número de funções de função de construção é igual ou semelhante. No entanto, a função -in construída em um idioma de script nem sempre é uma função correspondente em outro idioma de script. Por exemplo, o VBScript fornece muitas funções para operar string e formatação de dados, que não existem no JScript. Essas funções incluem Strververse (), Filter () e FormatCurrency (). Por outro lado, as funções fornecidas pelo JScript para gerenciar a matriz, codificação de string etc. não são definidas no VBScript, como junção (), reverse (), pow (), operações de bits, Escape () e UNESCAPE () espere.
Então, e se você precisar de uma função VBScript no programa JScript?
2. Chamadas mútuas de scripts heterogêneos
Se você precisar chamar uma função construída em um script VBScript no script JScript, você deve escrever uma função de definição do usuário VBScript (onde chamar a função VBScript Built -in aqui) e depois chamar essa função de definição do usuário como o público Função JScript no script JScript.
Por exemplo, se a função VBScript Built -in a ser chamada é formatCurrency (), você poderá declarar a seguinte função personalizada:
<idioma de script = vbscript runat = servidor>
Função formatValue (valor)
FormatValue = formatCurrency (valor)
Função final
< /script>
Em seguida, você pode chamar FormatValue () como uma função JScript comum no código JScript. Métodos semelhantes também podem ser usados para chamar a função JScript do código VBScript.
Aplicar a mesma regra, podemos chamar qualquer função de definição do usuário em qualquer script. No entanto, ao chamar um processo VBScript (sub) sem parâmetros (sub) do script JScript. .
Terceiro, compartilhamento de dados
Sob certas circunstâncias, é muito útil misturar o uso das funções VBScript e JScript, mas o compartilhamento de dados entre diferentes scripts de idioma também pode ser útil. O método de implementar esse compartilhamento é muito simples: não importa qual idioma seja usado, desde que as variáveis na instrução de nível de página possam ser referenciadas arbitrariamente.
O método do objeto também é semelhante e você pode usar a leitura de idiomas apropriada, modificar o método do atributo ou chamar o objeto. Obviamente, os atributos e métodos do objeto especificado são definidos pelo idioma de criar uma instância do objeto. Assim como o processo chama do processo VBScript acima, quando um método de chamar um objeto VBScript com um parâmetro com um parâmetro é chamado do JScript, o método de chamada também segue as regras de chamada do JScript e vice -versa.
Quarto, Gerenciamento de Array
O problema de compartilhamento de matrizes é um pouco mais complicado. Embora a matriz possa ser compartilhada entre diferentes scripts de idioma, como outras variáveis, devemos prestar atenção a problemas compatíveis.
A matriz VBScript pode ser referenciada com um símbolo de VBScript sob JScript, ou seja, o elemento da matriz dos elementos da matriz em vez do símbolo de referência dos elementos da matriz do JScript [2] Além disso, você pode usar um objeto JScript especial -o objeto VBARRAY para converter a matriz VBScript na matriz JScript. O código a seguir cria a matriz JScript MyjSarray da matriz VBScript MyvBarray:
var teste = novo vBarray (myvBarray)
var myjsarray
myjSarray = temp.toarray ()
O código acima primeiro cria um objeto VBARRAY temporário e, em seguida, use seu método ToArray () para se converter na matriz JScript. Desde então, posso usar o MyjSarray como uma matriz JScript comum, como MyjSarray [1]. No entanto, deve -se notar que o método ToArray () converterá um VBaray multidimensional em uma matriz JScript única.
A matriz JScript é mais complicada do VBScript. Embora possamos acessar diretamente os métodos e atributos da matriz JScript no VBScript, não há método para acessar diretamente o elemento único da matriz JScript. Em outras palavras, podemos ler o atributo de comprimento da matriz JScript no script VBScript, como mostrado abaixo:
x = myjsarray.length
No entanto, é impossível ler o elemento único da matriz diretamente.
x = myjsarray (3)
Um método viável para resolver esse problema é executar um processo de conversão.
< %
Dim temp
Dim MyvBarray
temp = myjsarray.join (,)
MyvBarray = split (temp ,,)
%>
O método jScript ingress () aqui converte o elemento MyjSarray em uma string com uma vírgula como divisão, e a função vbscript split () converte a sequência na matriz VBScript. Observe que aqui estamos o método de junção de chamar JScript no ambiente VBScript. De acordo com este exemplo, podemos simular o método ToArray () do objeto VBarray do JScript por função VBScript personalizada para implementar a conversão da matriz JScript para a matriz VBScript.
Cinco, resumo
A seleção flexível de diferentes linguagens de script no mesmo projeto ASP tem muitas vantagens. para bibliotecas de scripts VBScript ou universais que podem ser usadas no ambiente JScript.