ASP: migrare da VBScript a JScript o viceversa | |
![]() |
|
| |
|
ASP Center
Articoli
Referenze
Script
FAQ
Downloads
Siti utili
ASP
E-Commerce con ASP
Menu Javascript
Area Aziende
Cocktail
Registrazione domini
|
ASP: migrare da VBScript a JScript o viceversa
Concesso in esclusiva a Mr.Webmaster. Vietata la riproduzione.
Tutti gli amanti dell'ASP, in special modo chi mi segue dagli albori della mia comparsa su Internet come autore di materiale didattico su questo linguaggio, sanno che ASP è una tecnologia e non direttamente un linguaggio e che, per l'implementazione degli script, si possono utilizzare tre diversi linguaggi
Questo articolo vuole fungere da referenza per gli sviluppatori ASP che da VBScript vogliono migrare a JScript, o viceversa. Scopo della migrazione, che resto imparziale nel suggerire o meno, è legata ai puri gusti estetici e funzionali che caratterizzano le sintassi e le potenzialità dei due linguaggi. Dichiarazione iniziale del linguaggio utilizzato Le pagine VBScript (opzionalmente) riportano la seguente dicitura che specifica al Web Server il linguaggio di scripting utilizzato <%@LANGUAGE = VBScript%>Per JScript la dicitura (obbligatoria) è la seguente <%@LANGUAGE = JScript%>L'obbligatorietà della della seconda nei confronti della prima sta nel fatto che tutti i Web Server di casa Microsoft (IIS e PWS) per default specificano il VBScript come linguaggio di scripting. Differenze semantiche di base tra VBScript e JScript La prima differenza riguarda il fatto che il VBScript, al contrario di JScript, non è un linguaggio case-sensitive (sensibile all'utilizzo di lettere maiuscole e minuscole). Seconda differenza riguarda il fatto che JScript, al contrario di VBScript, riporta un punto e virgola (;) alla fine di ogni riga/istruzione. Il carattere può essere omesso ma se ne consiglia l'utilizzo. Operatori Segue un riepilogo tabellare di tutti gli operatori del VBScript e del JScript.
Dichiarazione di variabili e costanti Segue la sintassi per la dichiarazione e valorizzazione di una variabile in VBScript Dim stringa stringa = "Hello, World!"Segue la sintassi per la dichiarazione di una variabile in JScript var stringa = "Hello, World!";VBScript (che usa la parola chiave Dim), al contrario del JScript (che usa la parola chiave var), non può dichiarare e valorizzare una variabile sulla stessa riga. In il VBScript più utilizza la parola chiave Const per la dichiarazione di una costante, che può essere valorizzata sulla stessa riga in cui viene dichiarata Const stringa = "Hello, World!"Dichiarazione di oggetti ActiveX La dichiarazione di oggetti ActiveX (piuttosto che COM++) è molto differente tra il VBScript ed il JScript. In VBScript è necessario dichiarare l'oggetto, settarlo, inizializzarlo, aprirlo, utilizzarlo, chiuderlo e distruggerlo. Vediamo un esempio di apertura di una connessione al database
Dim cn
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open "stringa di connessione"
Response.Write "Connessione stabilita con successo"
cn.Close
Set cn = Nothing
In JScript è molto più semplice e veloce
var cn = Server.CreateObject("ADODB.Connection");
cn.Open("stringa di connessione");
Response.Write("Connessione stabilita con successo");
cn.Close();
Lo stesso discorso vale per tutti gli oggetti utilizzabili attraverso ASP.Nota: la dichiarazione var cn = Server.CreateObject("ADODB.Connection");
in JScript puù essere sostituita con
var cn = new ActiveXObject("ADODB.Connection");
consigliata per questo linguaggio.Istruzioni condizionali Sia il VBScript che il JScript dispongono del costrutto "If" ed anche del costrutto "Select Case", solo che in JScript, nel primo caso, non si usa la parola chiave "Then" e, nel secondo caso, il costrutto si chiama "switch". Iniziamo col costrutto "If" in VBScript
If condizione 1 Then
istruzione 1
ElseIf condizione 2 Then
istruzione 2
Else
istruzione alternativa
End If
Vediamo l'equivalente codice in JScript
if (condizione 1)
{
istruzione 1;
}
else if (condizione 2)
{
istruzione 2;
}
else
{
istruzione alternativa;
}
In JScript non si utilizza la parola chiave "Then" ma si includono i blocchi di istruzioni tra parentesi graffe; inoltre la condizione va inclusa tra parentesi tonde, cose che, opzionalmente, si può fare anche in VBScript.Passiamo ad un esempio di "Select Case" in VBScript
Select Case caso
Case 0 : istruzione 0
Case 1 : istruzione 1
Case 2 : istruzione 2
Case Else : istruzioni altrenative
End Select
Vediamo l'equivalente codice in JScript con l'istruzione "switch"
switch (caso)
{
case 0
istruzione 0;
break;
case 1
istruzione 1;
break;
case 2
istruzione 2;
break;
case else
istruzioni altrenative;
break;
}
Le istruzioni, anche se funzionalmente identiche, sono sintatticamente differenti e vanno prese cosi come sono, senza fare confronti uno ad uno.Istruzioni di iterazione VBScript e JScript hanno anche le istruzioni di iterazione in comune (sintassi esclusa) e con stessa finalità. Iniziamo dal ciclo "For", comune ad entrambi i linguaggi, e esaminiamo la modalità di redazione VBScript
Dim i
i = 0
For i = 0 To 9
Response.Write i & "<br>"
Next
' Restituisce tutti i valori di "i" da 0 a 9
Viene inizializzata la variabile e stabilito il valore di arrivo; l'incremento viene fatto con la parola chiave "Next".In Script il funzionamento è leggermente differente; esaminiamolo
for (var i = 0; i < 10; i++)
{
Response.Write(i + "<br>");
}
// Restituisce tutti i valori di "i" da 0 a 10
La variabile può essere potenzialmente dichiarata direttamente all'interno del ciclo ed il confronto avviene per un valore minore a quello desiderato (minore di 10 per ottenere 9); l'incremento avviene direttamente nella riga di apertura del comando.Continuiamo col ciclo "While". Facciamo un esempio in VBScript
Dim i
i = 0
While i = 9
Response.Write i & "<br>"
i = i + 1
Wend
' Restituisce tutti i valori di "i" da 0 a 9
La versione JScript è simile
var i = 0
while (i < 10)
{
Response.Write(i + "<br>");
i++;
}
// Restituisce tutti i valori di "i" da 0 a 10
Continuiamo col ciclo "Do While".Esaminiamo la modalità VBScript
Dim i
i = 0
Do While i = 9
Response.Write i & "<br>"
i = i + 1
Loop
' Restituisce tutti i valori di "i" da 0 a 9
Vediamo la modalità JScript
var i = 0
do
{
Response.Write(i + "<br>");
i++;
}
while (i < 10);
// Restituisce tutti i valori di "i" da 0 a 10
La differenza è che JScript esegue comunque la prima operazione, spostando il controllo "while" in coda al listato di codice.Gli array Ecco un altro interessante elemento che comporta diverse differenze sintattiche e semantica, ma non funzionali, tra VBScript e JScript. Iniziamo con un esempio VBScript
Dim giorni(7)
giorni(0) = "Lunedi"
giorni(1) = "Martedi"
giorni(2) = "Mercoledi"
giorni(3) = "Giovedi"
giorni(4) = "Venerdi"
giorni(5) = "Sabato"
giorni(6) = "Domenica"
Response.Write giorni(5)
' Restituisce Sabato
Prima di esaminare le differenze, naturalmente, vediamo la versione JScript
var giorni = new Array();
giorni[0] = "Lunedi";
giorni[1] = "Martedi";
giorni[2] = "Mercoledi";
giorni[3] = "Giovedi";
giorni[4] = "Venerdi";
giorni[5] = "Sabato";
giorni[6] = "Domenica";
Response.Write(giorni[5]);
// Restituisce Sabato
In VBScript è necessario specificare la lunghezza dell'array e si usano le parentesi tonde per indicizzare gli item; in JScript, invece, non è necessario stabilire a priori la lunghezza dell'array e si usano le parentesi quadre per indicizzarne gli item.Sostanziale differenza sta nella verifica della lunghezza dell'array, utile sia per sapere quanti elementi ci sono, sia per impostare un ciclo dinamico fino alla sua fine. Sulla scorta dell'esempio precednte, vediamo prima la versione VBScript e poi quella JScript Response.Write UBound(giorni) ' Restituisce 7 Response.Write(giorni.length); // Restituisce 7VBScript utilizza la funzione UBound mentre JScript si avvale della proprietà length. Le funzioni Simili nella sintassi e nella funzionalità (perdonate la cacofonia) sono le funzioni. Vediamo un esempio VBScript
Function Messaggio(testo)
Response.Write testo
End Function
Vediamo adesso un esempio JScript
function Messaggio(testo)
{
Response.Write(testo);
}
In VBScript utilizzeremo la parola chiave "Call" per richiamare la funzione, mentre in JScript non ce n'è nessuna
Call Messaggio("Hello, World")
Messaggio("Hello, World");
Principali funzioni/metodi per le stringhe, date e numeriConcludiamo con una veloce panoramica, in schema tabellare, delle principali funzioni per la gestione delle stringhe, delle date e dei numeri.
Attenzione: il VBScript utilizza delle funzioni predefinite mentre il JScript adotta dei metodi degli oggetti corrispondenti, il che rende i due linguaggi, da un punto di vista pratico, molto differenti. |
Newsletter
Stringhe di Conn.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| © 2008 ASP Center di Luca Ruggiero - P. IVA 05564851219 - Disclaimer | Privacy | Pubblicità | Supportaci | Staff | Contatti | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Appunti PHP | Giornale Webmaster | Mr.Webmaster | Download | DevSpy.com | ASPCode.it | ClaudioGarau.it | Webmaster Facile | Come Faccio | AlVerde.net | CodiceFacile.it | I Programmatori | By Luciani | VoiceXML Italian User Group | Giochi | Extro Web Site | Morpheus Web | AG Web Solutions | Net-Free | PC Sicuro | PC Self | Tutorial Web | Dablones | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||