Ajax e il futuro del web

Sabato, Dicembre 1st, 2007

Molti considerano Ajax come il futuro del Web, altri come una semplice moda. AJAX (Asynchronous JavaScript And XML) si basa su tecnologie che in realtà non sono affatto nuove. JavaScript è disponibile da oltre 15 anni e DOM, CSS, XHTML, XML sono stati introdotti anni prima dell’invenzione del termine Ajax, così come l’oggetto XMLHttpRequest.

Le novità invece riguardano l’introduzione di nuovi modelli di sviluppo, resi possibile dall’avento della nuova generazione di browsers. In poche parole, quando i tempi si sono dimostrati maturi, qualcuno l’ha capito che ha creato qualcosa di nuovo utilizzando componenti e tecnologie già consolidati. Quel qualcuno è stato Jesse James Garrett nel suo famoso articolo “Ajax: a new approach to web applications”, disponibile QUI.

A differenza quindi di tutti i vecchi o altri approcci che richiedono plug-in o non sono compatibili con tutti i browsers, Ajax funziona nella maggior parte dei moderni browsers e non richiede alcun software o hardware proprietari. Questo è infatti uno dei punti di forza di questo approccio, quello di consentire agli sviluppatori di non dover imparare un nuovo linguaggio o scartare le conoscenze acquisite sul lato server. Ajax è un approccio, sì sul lato client, ma in grado di interagire con gli script J2EE, .NET, PHP, Ruby e CGI: è davvero indipendente dal server.

Ajax - Web 2.0

Da come si sarà intuito dal termine Ajax gestisce le richieste del browser in modo asincrono. Asincrona è quindi l’abilità di gestire un processo indipendentemente da altri. Con un trasferimento di dati sincrono lo script ha bisogno di essere processato prima di passare ad un secondo elemento. In questo modo il secondo elemento dipende sempre dal primo. In questo modo si crea un collo di bottiglia di una connessione tra pagina Web e browser. Gli Style tag e i link nella sezione head di un documento creano lo stesso effetto collo di bottiglia. Vengono processati uno alla volta prima che altri elementi della pagina siano scaricati. Una volta che sono stati processati, gli elementi nella sezione body possono usare connessioni che occorrono nello stesso tempo per velocizzare il processo di download. Per esempio, la maggior parte dei server gestiscono fino a due a quattro connessioni nello stesso tempo tra pagina Web e browser. Questo significa, che da 2 fino a 4 immagini o altri elementi della pagina sono caricati nello stesso tempo. Prima che il processo inizi, quello che c’è tra i tag head deve essere processato per primo e può rallentare considerevolmente il caricamento della pagina. Quasi tutte le pagine Web e i blog su Internet utilizzano questo metodo. Non è difficile comprendere come questo comporti un rallentamento nel caricamento delle pagine Web. Il metodo di caricamento asincrono è differente perchè il processo di caricamento è gestito in maniera indipendente superando il collo di bottiglia del design tradizionale delle pagine Web. L’essenza di questa tecnica sta nell’uso minimale del JavaScript e poi nello spingere tutti gli altri tag correlati, incluso il resto del JavaScript, CSS etc attraverso un xmlhttprequest object. Questo metodo utilizza molteplici connessioni aumentando la velocità della pagina considerevolmente.

Ajax è quindi una tecnica che si basa su tecnologie consolidate in grado di offrire una nuova frontiera allo sviluppo web. Con Ajax il confine e il divario tra applicazioni web e applicazioni desktop si è ridotto notevolmente e credo che prima o poi verrà abbattuto definitivamente.

Primo Post

Giovedì, Novembre 29th, 2007

Questo primo post lo dedico a questo sito e ai sui propositi: divulgazione e, perché no, pubblicità al suo creatore, cioè io.

Sto infatti preparando un lungo post sul web 2.0 che, oltre a questo post, sarà il primo. Si propone infatti di essere il punto di partenza per questo e per quelli che saranno i miei prossimi siti, distribuiti per essere parte integrante di questo nuovo mondo, basato si sul vecchio, ma ricco di novità e di interessanti stimoli.

A presto dunque e non mancate!

Web 2.0