Andrea Rossato wrote: > caro mario ti ringrazio molto dell'esempio, che mi apre gli occhi su > come strutturare la cosa. ora mi metto a sperimentare. > qui si nota la mia difficoltà ad ambientarmi nella programmazione OO, e > la tendenza ad utilizzare oggetti e metodi come fossero funzioni in un > linguaggio procedurale... > avresti (tu o altri) qualche lettura, anche di una certa tecnicità, per > cercare di formarsi una "sensibilità" orientata agli oggetti? > Direi che i tasselli che mancano sono sostanzialmente 2. Il primo è la programmazione a eventi, che non è propria dell'ambiente Web. Il secondo è appunto l'approccio OO. In merito al secondo dovrebbero esserci abbondanti documenti in rete. Questa mi pare una bella guida introduttiva alla teoria, quindi senza esempi di codice : http://www.accu.org/acornsig/public/articles/ood_intro.html Per quanto riguarda le applicazioni nei vari linguaggi c'è il mitico Bruce Eckel, un programmatore di ottima esperienza OO che è anche un ottimo scrittore. Ti consiglio il suo : Thinking in patterns http://www.mindview.net/ Trovi tutti i suoi libri in pdf, ha scritto guide object oriented per diversi linguaggi (Java, C++, python...) In javascript non ha fatto nulla, ma l'applicazione dei concetti risulta più semplice dopo averne preso confidenza su altri linguaggi. L'OO presenta alcune parti importanti oltre alla teoria di base : 1 design patterns, ovvero strutture già confezionate per risolvere alcuni problemi, sono concetti di design, quindi il codice è da scrivere, ma sono paradigmi interessanti perché permettono di dare la soluzione migliore a certi problemi. 2 extreme programming, un approccio alla programmazione che punta a ottenere un codice di alta qualità attraverso l'impiego di uno schema preciso di lavoro. 3 paradigma a framework, ma questo è utile soltanto se si è intenzionati a realizzare qualcosa che può essere impiegato in varie situazioni con piccoli aggiustamenti. > per il javascript ciò che mi ha dato una visione generale del liiguaggio > è stato questo: > http://javascript-reference.info/ > un cheat sheet! > Come diceva anche Guido javascript è più una acquisizione di esperienza attraverso l'utilizzo di trucchi che non imparare il linguaggio di per se. Questo perché la struttura del linguaggio è molto semplice ed il limite consiste solo nella conoscenza che il programmatore ha del mondo Web. Fra gli esempi di codice interessante che ho visto ultimamente c'è http://www.tiddlywiki.com/ Forse potresti cannibbalizzare diverse parti per utilizzarle sul tuo editor. > > il problema è che viene usato come proprietà sia per leggere ma anche > settare un ramo/albero del DOM, pur non facendone ufficialmente parte, > secondo gli standard. si tratta infatti di un'estensione proprietaria > introdotta da microsoft.[1] > da quanto leggo l'operazione di settaggio non dovrebbe essere fatta con > il dom di un documento xml (quindi in una pagina xhtml servita come > andreabbe servita: application/xhtml+xml), il dom dovrebbe essere > modificato con metodi del dom stesso. > > quindi, ad esempio: > var div = document.getElementById('page'); > div.innerHTML = "Ciao! <b>Io sono un pezzo di HTML</b>"; > > in firefox-1.5 funziona > > in firefox-1.0.7 e precedenti ciò dà un errore: > Error: uncaught exception: [Exception... "Component returned failure > code: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMNSHTMLElement.innerHTML]" > nsresult: "0x80004005 (NS_ERROR_FAILURE)" > > ovviamente la cosa ha molto senso e firefox-1.0.7 faceva bene a non > permetterlo: il browser fa prima un parsing del docuemnto xhtml+xml (che > è appunto xml), ma poi puoi modificare il dom con innerHTML inserendogli > una normalissima stringa. boh. > Capisco. Potresti implementare comunque in questo modo le varie parti, mettendo il tutto in un catch[1], e in caso di eccezione implementare una truttura via dom, vale a dire utlizzando appendChild e createElement/createTextNode ricorsivo. > > ciao e ancora grazie. > andrea > Figurati, anzi la cosa mi interessa e se ti serve una mano sarei felice di dartela. [1] In javascript è possibile utilizzare la gestione degli errori con la seguente sintassi : try { // code } catch(error) { // code on error } E' utilissiomo per debuggare i problemi su explorer. Inoltre con throw puoi anche scatenare eccezioni che quindi ti aiutano a individuare dove si scatena il problema. Lo riporto perché è una parte recente in javascript, forse non tutti i browser lo supportano (Mozilla 1.1 >/Firefox 1.0 > /IE 6.0 > sì da quello che ho provato). -- Ciao, Mario. ---------------------------------------------------- This mail has been sent using Alpikom webmail system http://www.alpikom.it -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx