[zxspectrum] Re: [OT] Il nuovo Browser di Google!

  • From: "Paolo Basenghi" <p.basenghi@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Wed, 3 Sep 2008 22:46:37 +0200

2008/9/2 Paolo Ferraris <pieffe8@xxxxxxxxx>

>
> Una chiamata "sincrona" (se fosse permessa) ad un server in Javascript
> corrisponde ad una semplice chiamata a funzione, dove il script Javascript
> rimane bloccato fino a quando non arriva la risposta da parte del server.
> Con le implementazioni attuali degli engine Javascript, che sono monothread,
> questo significa tenere bloccati tutti i script javascript se non l'intero
> browser.


Firefox 3 ha introdotto degli oggetti appositi per creare e gestire i
thread:
http://developer.mozilla.org/en/The_Thread_Manager

Ovviamente non è l'engine Javascript che fa il lavoro, ma il browser che lo
contiene.

Questo vale anche per Chrome da quello che ho capito.

Il motore JavaScript è sicuramente "threadizzato" (basti pensare al garbage
collector), ma il linguaggio non ha funzioni native per la gestione dei
thread.

Ma credo che per chrome il discorso sia un altro. Da quel che credo di aver
capito, ma la documentazione è scarsa, Chrome tratta ogni "tab" di
navigazione come un processo separato (non come un thread, ma come un
processo). Quindi non credo sia esatto dire che ogni script viene eseguito
in un suo thread, ma piuttosto che ogni  tab di navigazione ha il suo
processo separato, ciascuno eseguente i suoi eventuali script in maniera
sequenziale.
Tant'è vero che:
- è possibile avere un task manager simile a quello di Windows
- se una tab viene trascinata fuori dalla finestra del browser, diventa essa
stessa una finestra indipendente.

In questo modo non succede come in Firefox dove, per fare un esempio, quando
carico un PDF in una tab, le altre sono bloccate fino a che il reader non è
pronto in memoria.

In Firefox le tab sono thread di esecuzione del browser, mentre in Chrome
sono processi indipendenti, quindi eventuali pocci nella memoria di uno non
influiscono sull'esecuzione degli altri (a meno che gli altri non contengano
pagine web collegate).

Per quanto riguarda il discorso di Enrico sulla sincronia/asincronia del
web... beh, secondo me ha ragione lui, nel senso che le chiamate web,
JAvaScript o non JavaScript, Ajax o non Ajax,  avvengono comunque tramite il
protocollo HTTP, che rimane tutt'oggi un protocollo concepito per la
richiesta e il download di file di testo.

Dulcis in fundo: qualcuno ha aperto la finestra di configurazione di Chrome?
Spassosa!
Ciao
Paolo

Other related posts: