Corso di JavaScript

Jscript e il DHTML

 

La contesa tra i browser Netscape Navigator e Microsoft Internet Explorer ha comportato non pochi problemi agli sviluppatori del linguaggio Javascript, le due società nel tempo hanno seguito ognuno una propria strategia, finalizzata esclusivamente al miglioramento del proprio prodotto.
Facendo un passo indietro, la Microsoft nel 1996, in risposta alla eccellente versione 2.0 del Netscape Navigator, iniziò a progettare il suo Internet Explorer  con all’interno un linguaggio similare al Javascript ma che per motivi di copyright decise di ribattezzare in Jscript.


Jscript: Il Javascript targato Microsoft

La prima versione di Jscript è stata la 1.0, inserita nel Microsoft Internet Explorer 3.0, questa implementazione si è basata sulla specifica di linguaggio ECMA 262 con integrazione di istruzioni che sfruttano esclusivamente le funzionalità del Document Object Model del Microsoft Internet Explorer.
Jscript, quindi, è compatibile con il linguaggio ECMA 262 ma possiede in aggiunta anche implementazioni proprietarie all’interno del suo browser.
Le implementazioni aggiuntive, unitamente alle diversità dei D.O.M. dei browser, ed alla staticità del linguaggio HTML hanno avuto come conseguenza la nascita del DHTML (Dynamic HyperText Markup Language).

Il DHTML non va interpretato come un linguaggio, bensì come un insieme di tecnologie al fine di superare la diversità tra le varie piattaforme, ma di questo ne parleremo più avanti.
Oggi, Javascript e Jscript, viaggiano di pari passo (vedi Tabella A e Tabella B), senza però avere una completa compatibilità, per cui dovremo abituarci all’idea di provare i nostri programmi con diversi browser (o diverse piattaforme).

Vediamo l’evoluzione delle versioni dei due principali browser:


      Versioni Netscape Navigator

Browser Netscape

 Versione Javascript

  Navigator 2.0

   Javascript 1.0

  Navigator 3.0

   Javascript 1.1

  Navigator 4.0

   Javascript 1.2

  Navigator 4.x

   Javascript 1.3

                                     Tabella A


 Versioni Microsoft Internet Explorer

 

  Javascript

 Jscript

Versione

1.0

1.1

1.2

1.3

1.0

3.0

5.0

Explorer 3.0

*

     

*

   

Explorer 4.0

*

*

*

 

*

*

 

Explorer 5.0

*

*

*

*

*

*

*

                                    Tabella B

Navigator contro Explorer ovvero ‘la guerra dei browser’

Nella ‘guerra dei browser’ ci sono stati anche dei colpi bassi, tra i quali risultò fin troppo evidente l’iniziativa della  Microsoft di inserire in forma gratuita ed aggiuntiva il suo browser nei Sistemi Operativi Windows. Quest’ultima strategia iniziale, unitamente in un secondo tempo alla creazione di una ottima piattaforma (Microsoft Internet Explorer 5), ha prodotto un vistoso aumento di utenti che preferisce MSIE e forse ha prodotto anche la vittoria finale.
Se mi permettete una battuta, chi di voi non acquisterebbe volentieri una automobile che avesse servizi accessori aggiuntivi e gratuiti come ad esempio l’assicurazione! (Se questo servizio esiste veramente mandatemi una mail)
Scherzi a parte, pensate alle difficoltà della Netscape che da quell’istante ha dovuto fornire il suo prezioso prodotto in forma gratuita, scatenando e vincendo solo in seguito l’azione legale di antitrust nei confronti della Microsoft.
Non voglio aggiungere altro in merito, però quando un giorno diventerete esperti programmatori in Javascript e vi accorgerete che qualcosa non funziona nel browser concorrente, a quel punto saprete che non è completamente colpa vostra!
Una conseguenza della guerra dei browser è la nascita del DHTML come necessità.

Il DHTML

Quando si parla di HTML dinamico, si pensa ad una evoluzione del linguaggio di formattazione HTML. Non è così. In realtà ci sono delle integrazioni di tecnologie differenti all’interno dell’ HTML. Queste tecnologie possono essere ad esempio: Javascript, CSS, Jscript, VBScript, e vanno applicate di volta in volta a seconda del D.O.M. del browser incontrato.
Mi spiego meglio, sul browser della Netscape utilizzerò soluzioni dinamiche con il linguaggio Javascript, ma sul browser della Microsoft potrò utilizzare in aggiunta o in alternativa anche il VBScript (linguaggio di  proprietà Microsoft). Conoscere il DHTML significa saper utilizzare tecnologie differenti allo scopo di arrivare al medesimo risultato nelle varie piattaforme. In parole povere significa ‘mettere una pezza’ ai danni creati dalla ‘guerra dei browser’. Le guerre non sono mai state costruttive, in nessun campo.

Lasciamo il DHTML agli esperti del settore e torniamo al nostro linguaggio, il Javascript.
Prima di concludere, vorrei darvi alcune delucidazioni sul tag <SCRIPT>, e su come nascondere le istruzioni ai browser non aggiornati o comunque non compatibili con il Javascript.

Il Tag <SCRIPT>

Nei precedenti esempi abbiamo già utilizzato il tag <SCRIPT> ed  abbiamo appreso che il contenuto compreso tra:

 <script language=”Javascript> e </script>

è un codice che il browser deve interpretare come linguaggio Javascript. Il tutto potrebbe essere sufficiente, se non fosse che Netscape raccomandi vivamente di indicare anche la versione di riferimento che si adopera. Il motivo è semplice: Javascript è in continua evoluzione, questa specifica permette eventualmente al browser di discriminare la compatibilità con le versioni precedenti. Per cui sarà possibile che incontriate, da questo momento in poi, il seguente TAG di apertura:

 <script language=”JavascriptX.Y>

dove X.Y è la versione, ad esempio la versione Javascript 1.2 che è presente a partire dalle versioni 4 di Explorer e 4 di Netscape. (Vedere le tabelle A e B di riferimento , incontrate precedentemente)

Come nascondere il codice Javascript ai vecchi browser

Alcuni browser potrebbero non riconoscere le istruzioni in Javascript. Una tecnica adottata da molto tempo per nascondere il codice Javascript ai vecchi browser e che vi consiglio è la seguente:

<script>
  <!-- Inizio - Nascondiamo lo script ai vecchi browser

    Istruzioni Javascript

  // Fine - Nascondiamo lo script ai vecchi browser -->
</script>


In questo modo le istruzioni Javascript non verranno eseguite sui browser che non hanno implementato il linguaggio Javascript. In pratica tutto quello che è compreso tra <!— e --> viene visto come un commento dai vecchi browser.
In realtà noi potremmo sfruttare questa tecnica anche per inserire alcune utili indicazioni, per esempio:

<script>
  <!-- Inizio Funzioni mio programma

    Funzioni Javascript

  // Fine Funzioni mio programma -->
</script>

Conclusioni

Finalmente abbiamo visto che cosa è Javascript, un linguaggio di programmazione per sviluppare piccole applicazioni in ambiente HTML. Un linguaggio estremamente versatile, basato sugli oggetti, e che rispetta le direttive della programmazione strutturata.
Con poche righe di codice (script), potremo manipolare attraverso i metodi qualsiasi oggetto che sia contenuto nel documento di un browser.
La prima apparizione di Javascript è stata nel 1995 con la versione beta  2.0 di Netscape Navigator. Questo linguaggio viene interpretato in vari browser, e non richiede alcuna compilazione preventiva prima della sua esecuzione.
Javascript è un linguaggio in continua evoluzione ma la sua sintassi è stata definita dall’ECMA con il documento ECMA 262 .

Nel prossimo capitolo, prima di vedere le fondamenta del linguaggio Javascript, vi mostrerò una serie di esempi intuitivi a dimostrazione della semplicità di utilizzo e di apprendimento del linguaggio.


Bibliografia

http://www.w3.org
http://www.ecma.ch
http://www.netscape.com
http://www.microsoft.com

 

Torna all'indice Generale del corso di Corso di JavaScript di Software Planet