Approfondimenti
di Michael J. Hammel traduzione di Antonio Cartelli


Qualche elemento in più su Visual DHTML


 
Qualche osservazione sugli altri programmini (widget):
I Notepad sono dei form che consentono di gestire un'area di testo.  Li si può selezionare ma occorre cliccare sul titolo del NotePad - non si può procedere a fare selezioni dall'area di testo o dalla barra di scorrimento.

Le News boxes sono interessanti.  Si possono aggiungere tag HTML anche al titolo, accade però che i break causino la mancata notifica di parte del titolo senza alcuna specificazione di font.  Ci sono poi 4 aiuti alla navigazione ai 4 angoli della finestra news box.  Se si dispone il mouse sull'aiuto Go (angolo in alto a sinistra) aumenta la capacità di scorrimento all'interno della finestra, mentre se lo si dispone sull'angolo in basso a destra: "l'aiuto Stop", lo scorrimento diminuisce o addirittura si ferma. Gli aiuti Up e Down fanno muovere il testo nella finestra soltanto per piccoli incrementi.

C'è un orologio digitale del quale si può predisporre il colore di sfondo, anche se sembra che l'operazione interessi lo spazio che circonda l'orologio all'interno della sua finestra, piuttosto che il colore di sfondo dell'orologio stesso.  C'è anche una finestrella con la data che non è altro che un po' di testo colorato della grandezza specificata dall'utente (ovviamente non si può specificare il tipo di carattere).

Una volta che sia stata creata la barra di stato altre barre di lavoro possono essere aggiunte a quest'ultima.  Barra di stato (Toolbar) è soltanto un ulteriore nome che può essere dato ad una barra di menu con delle icone. Non è immediatamente evidente ma ci sono due collegamenti nella finestra di dialogo delle Toolbar - uno per la barra in sé ed un altro, giusto sotto il primo, per l'aggiunta di elementi individuali (ebbene si, si usa denominarli elementi (Item) anche se di fatto si presentano come un unico collegamento).

Problema:  L'aggiunta di un elemento di menu sembra abbia fatto collassare il browser.  Il programma top, però, riportava che l'applicazione era in funzione e stava utilizzando, in quel momento, più del 50% dei miei 64 Mbyte di memoria.
Occorre essere molto prudenti nell'aggiungere una barra di strumenti se si hanno già altri elementi aperti sulla pagina - accade infatti che, siccome non si può spostare la barra di menu, se qualcosa si trova sotto di lei, l'elemento corrispondente non potrà essere trascinato in una nuova posizione in quanto il menu verrà a sovrapporsi ad esso.

L'elemento mouselink (collegamento al mouse) può essere fuorviante.  Non si deve cliccare sulla piccola barra dell'elemento - che è l'immagine di default e che si presenta molto simile al widget di disegno - quanto piuttosto sull'immagine che sottende il menu a tendina!  L'immagine diventa visibile soltanto nel momento in cui si dispone il mouse sull'elemento mouselink, anche se una volta ottenuta permane in maniera abbastanza stabile.  Si tratta di un evento onMouseOver di tipo JavaScript, non collegato ad alcun evento agganciato al rilascio del mouse per la ripulitura dell'immagine.  Lo si deve aggiungere a mano.

Delle Tables (tabelle) sono accessibili dal menu a tendina del testo (non dalla finestra di dialogo) in quanto ci si aspetta che si voglia riempire la tabella con del testo (anche se poi al suo interno si può inserire del codice HTML).  Sfortunatamente se si specifica una tabella di dimensioni superiori a quelle della finestra standard Main VDHTML non si sarà in grado, mediante nessuna barra di scorrimento, di accedere a tutte le sue righe e/o colonne.  Ancora peggio non si potrà ridimensionare la finestra principale!  Morale:  utilizzare sempre tabelle abbastanza piccole e modificarle a mano in un secondo momento.

Non tutti i programmini sono accessibili dalla finestra di dialogo "Widget", tra questi ad esempio abbiamo l'elemento per le tabelle di cui abbiamo appena parlato.  C'è poi un programmino denominato Canale accessibile dal menu a discesa dei Canali nella finestra principale di VDHTML, anche se non so bene a cosa serva.  L'URL di riferimento per l'immagine da utilizzare per questo elemento non funzionava per cui non posso riportarla.

Si può dire che VDHTML ha un modo tutto suo di funzionare allorché ci si rende conto che non c'è alcun modo di rimuovere un elemento dalla finestra d'anteprima.  Io, ad esempio, ho provato a trascinarli fuori dalla finestra ma non ha funzionato.  Con questa operazione sembra che l'elemento si sposti su un'area al di fuori dello schermo ma di fatto resta sulla pagina.  Una prova al riguardo può essere fatta prendendo l'elemento plug-in di default e trascinandolo al di fuori del bordo inferiore della finestra del browser.  Quando la pagina viene ricaricata ci si ritrova con la richiesta di utilizzazione di un plug-in Shockwave (che per quanto ne so in Linux non trova alcun riscontro) anche se si è convinti di aver rimosso completamente il plug-in che lo richiedeva. Il bello è che non c'è alcuna opzione di menu per rimuovere questi elementi dalla finestra principale del programma.

Un interessante effetto collaterale si è manifestato quando ho provato ad utilizzare un elemento della lista preferences che è anch'esso un menu a tendina a scorrimento verso il basso.  Ho poi utilizzato questo menu per selezionare "Reload Page (Ricarica Pagina)" dall'interno della pagina di anteprima (questa opzione e ad altre due con essa vengono date normalmente per questo widget).  Ne è seguito il caricamento da parte della mia finestra d'anteprima del Visual DHTML nella finestra d'anteprima!  La pagina sulla quale stavo lavorando è scomparsa!  Fortunatamente, una pressione del pulsante destro del mouse all'interno della finestra d'anteprima ha fatto riaprire il familiare menu a tendina di Netscape dal quale ho potuto scegliere "back" per ritornare alla mia pagina DHTML.  In maniera analoga ho scoperto che potevo far ripartire la mia applicazione DHTML dalla sua finestra principale utilizzando l'opzione Back del menu a tendina di Netscape (in effetti il menu che si ottiene con il pulsante destro del mouse all'interno della finestra del browser).  Si noti che ci si comporta come descritto avendo una finestra d'anteprima aperta il VDHTML una volta rilanciato non riconoscerà più quella finestra - si dovrà far partire una nuova finestra d'anteprima.

Questo piccolo esperimento realizzato utilizzando l'opzione BACK ha permesso di evidenziare anche un altro piccolo problema - la barra di menu nella finestra VDHTML reale è dimensionata in maniera statica, per cui quando il VDHTML si è aperto nella finestra d'anteprima più ampia, la barra di menu non è andata ad occupare tutta la finestra.  Forse non si tratta di un errore, però!  Potrebbe trattarsi di un obiettivo progettuale.  Si dà il caso che io non creda che chi ha progettato VDHTML volesse farlo aprire nella finestra d'anteprima!  Dopo aver visto questo ho provato a ridimensionare la finestra principale utilizzando le caratteristiche del gestore delle finestre ed ho scoperto che non c'erano maniglie o bottoni da utilizzare per ridimensionare quella finestra; mi è venuto allora in mente un vecchio espediente da sviluppatore di GUI - se non si vuole che un utente faccia una determinata cosa non gli si deve dara la possibilità di farla.  Io tengo sempre presente questa regola ogni qualvolta mi metto a ridimensionare delle finestre.  Il rialineamento di widget in Motif è una pena.

II DHTML, normalmente, può essere immerso all'interno di ciascuno degli elementi (widget) in quanto molti di essi prevedono la definizione di URL o di testo ordinario attraverso le loro opzioni configurabili.  Il testo può essere DHTML anche se il VDHTML non rende affatto più facile aggiungere questi elementi al campo testo nella finestra delle opzioni.

Problema:  Se il collegamento non funziona o è lentissimo sembra non esserci una strada per dire al VDHTML di fermarsi e desistere dal tentativo di collegarsi all'URL remoto.  Purtroppo con Netscape non si può far nulla di più se non aspettare che il server remoto venga risolto.

Poiché nella barra di stato non viene visualizzato alcun collegamento come accade invece nella normale finestra di un browser, non si è in grado di dire quando si è messo il mouse su un link se esso si trova nella finestra d'anteprima oppure in quella principale.  Probabilmente si tratta di una buona cosa ma in alcune circostanze (come la barra dei programmi ed i collegamenti alle opzioni) avrebbe potuto essere utile.

Non si deve dimenticare che questo programma sta creando una pagina DHTML, ovvero un normale file di testo, e che questo file può essere salvato su disco e modificato più tardi. Non ci si deve pertanto crucciare della poca configurabilità della versione corrente dell'applicazione VDHTML.  Se si prova a salvare la pagina realizzata si passa per una delle finestre di dialogo di sicurezza di Java al fine di garantire all'applicazione (Netscape) la possibilità di accedere al disco.  In passato non mi sono mai imbattuto con questi particolari problemi di sicurezza e ne sono rimasto abbastanza sorpreso.  Ma non c'è nulla di cui preoccuparsi - è un problema locale all'applicazione VDHTML alla quale si sta garantendo l'accesso ed è collegato esclusivamente alla sessione di lavoro corrente, a meno che non si dica al browser di ricordare il settaggio dei privilegi cliccando su un particoalre bottone della finestra di dialogo corrispondente.

Il codice che viene prodotto dal VDHTML è solo parzialmente leggibile ma non c'è da aspettarsi che vada a collocarsi esattamente nelle 80 righe della finestra di un editor!  Come nel caso del codice prodotto da un Web editor, i simboli di fine riga "newline" non vengono inclusi nel testo HTML.  Il testo che viene prodotto può essere editato alla stessa maniera di un qualunque altro testo una volta che si sia presa confidenza con il meccanismo della mancanza di accapo.
 

Che cosa penso dello stato corrente del software.

VDHMTL fa largo uso di Strati e di Fogli Stile in cascata.  Questi rappresentano anche un elemento interesante di novità per l'HTML, visto che alcuni consentono di aggiungere un po' di vita alle pagine altrimenti piuttosto statiche.  Non è chiaro però quale sia il sovraccarico per il sistema per l'animazione e l'esecuzione di script all'interno del browser.  Il mio sistema non si è seduto, ma è anche vero che ha visto utilizzare all'incirca il cinquanta per cento della sua memoria disponibile da parte del browser, nel momento in cui il pacchetto è andato in esecuzione.  Per il momento questo è quanto ci si deve aspettare.  Cominciamo col far funzionare l'applicazione, poi lavoriamo a ripulirla ed a renderla efficiente: non sarà il migliore piano di sviluppo, ma è comunque un modo abbastanza usuale di procedere.  Per il futuro mi aspetto che i miglioramenti vengano più che dal codice VDHTML stesso dalle modalità con le quali esso viene gestito dal browser.

È anche vero che il Visual DHTML stesso richiede dell'ulteriore lavoro: l'interfaccia è carina ma mi aspetto che cambi radicalmente tra pochissime versioni in quanto la maggioranza dei programmi non presenta neanche lontanamente tutti i possibili parametri di configurazione che potrebbe avere ed è pensabile che la finestra principale venga modificata per tener conto di tutte queste possibilità.  In questa versione ci sono poi una miriade di errori e di comportamenti imprevisti, come, ad esempio, la possibilità di lanciare il programma nella finestra d'anteprima. Per quanto riguarda gli errori sono così tanti che ho dovuto provare a fare una raccolta delle schermate dei widget disponibili in quanto non sono riuscito in nessun modo a farli funzionare insieme ed ho ritenuto opportuno posizionarli all'interno di una finestra dalle dimensioni ragionevoli, per quanto riguarda i fogli stile invece, il loro utilizzo non appare molto evidente, ad esempio non è possibile configurare i font di caratteri.

Per una prima versione, però non c'è: male. Sicuramente riesce a dare un'idea di cosa sia il DHTML e di cosa si possa fare con esso. Il codice contiene in maniera pesante JavaScript per cui sarà possibile apprendere alcuni degli ultimi trucchi della versione 1.2 di tale codice.  Al momento, però, Visual DHTML è soltanto un pacchetto da sperimentazione.  Non ci si aspetti di riuscire a creare con esso progetti HTML dinamici particolarmente ambiziosi.

Un'annotazione finale:  nella pagina della Netscape dedicata a Visual DHTML c'è un collegamento ad un esempio Midi-player realizzato con Crescendo e scritto con Visual DHTML.  Si veda la pagina esempio di Crescendo!  Vengono rimosse le barre di menu di Netscape e mediante l'utilizzo del tasto back (torna indietro) non si riesce a farle ricomparire!  Per rimediare ho dovuto uscire da Netscape, utilizzare il mio gestore delle finestre, utilizzare l'opzione Close e far ripartire il tutto.  Attenzione quindi ...
 
indent
 

[ La pagina della Musa ] [ Indice ]


Per l'articolo originale: © 1998 Michael J. Hammel - Pubblicato sul n. 33 della Linux Gazette
Per l'edizione italiana: © 1998 A. Cartelli - Pubblicato sul n. 9 anno II di LGEI a cura di un gruppo di volontari.