HighDots Forums  

Array() e informazioni relative.

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss Array() e informazioni relative. in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
giuseppeD
 
Posts: n/a

Default Array() e informazioni relative. - 05-25-2005 , 08:57 AM






Salve a tutti,
Presento dei dubbi per chiarimenti e consigli.

obbiettivo: elenco su tre <SELECT>, Regioni, Comuni, Provincie, dove i
valori sono caricati da degli Array().

La costruzione degli Array avviene tramite VB.NET (ASP.NET).
Genero blocchi di script per il lato client utilizzando le classi del
Framework.

Ho notato che i valori degli Array non sono tenuti in memoria ma vengono
scritti per intero.
Cioè se imposto lato cliente
var arr;
e successivamente costruisco un array di 50 elementi e tramite VB.NET:
arr=Array()
tutti e 50 valori sono scritti, e no preservati in memoria.
Presumo sia corretto in quanto le informazioni dal server al cliente
viaggiano via TCP/IP.

Dopo la costruzione, da VB.NET a Javascript passa una stringa lunga 119340
caratteri
Il codice si presenta tipo:

<script language=javascript>var arrRegioni=new Array();var
arrProvincie=new Array();var arrComuni=new Array();
arrRegioni[0]='ABR';arrProvincie[0]=new
Array();arrProvincie[0][0]='AQ';arrProvincie[0][1]='CH';arrProvincie[0][2]='PE';arrProvincie[0][3]='TE';arrRegioni[1]='BAS';
arrProvincie[1]=new
Array();arrProvincie[1][0]='MT';........................

'Comuni della prima provincia
arrComuni[0]=new Array('ACCIANO','AIELLI','ALFEDENA'............... ..

'Comuni ultima provincia
arrComuni[102]=new Array('AFFI',

Quindi alimento le <SELECT> dagli Array() parte cliente
Primo dubbio:
Una tale mole di dati presente nella pagina può dare dei problemi ?

Secondo dubbio:
Si velocizza se inserisco, in fase di dichiarazione, il numero numero
degli elementi tra le parentisi dell'Array(), es. Array(120)?

Terzo dubbio:
Rilevo la lunghezza di una classe tipo:
arrRegioni.length e il numero lo devo assegnare,
è sufficiente o meglio convertirlo con la funzione
parseInt(arrRegioni.length) ?

Grazie
giuseppeD



--

questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad abuse (AT) newsland (DOT) it



Reply With Quote
  #2  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: Array() e informazioni relative. - 05-25-2005 , 09:00 AM






In data Wed, 25 May 2005 14:57:12 +0200, giuseppeD ha scritto:

Quote:
Salve a tutti,
Presento dei dubbi per chiarimenti e consigli.
[CUT]
Dico la mia, poi sentiamo gli altri
Quote:
Primo dubbio:
Una tale mole di dati presente nella pagina può dare dei problemi ?
Stai semplicemente sparando 12k in più...in generale no, IMHO non dà
problemi.

Quote:
Secondo dubbio:
Si velocizza se inserisco, in fase di dichiarazione, il numero numero
degli elementi tra le parentisi dell'Array(), es. Array(120)?
Secondo me no, la differenza è quasi nulla

Quote:
Terzo dubbio:
Rilevo la lunghezza di una classe tipo:
arrRegioni.length e il numero lo devo assegnare,
è sufficiente o meglio convertirlo con la funzione
parseInt(arrRegioni.length) ?
No, non c'è bisogno (poi dipende cosa ci fai con questo dato).

--
"Ho smesso di fumare.
Vivrò una settimana di più.
E in quella settimana pioverà a dirotto"
W.A.


Reply With Quote
  #3  
Old   
ZER0
 
Posts: n/a

Default Re: Array() e informazioni relative. - 05-25-2005 , 09:17 AM



On Wed, 25 May 2005 14:57:12 +0200, giuseppeD wrote:

Quote:
obbiettivo: elenco su tre <SELECT>, Regioni, Comuni, Provincie, dove i
valori sono caricati da degli Array().
Da degli array client-side?

Quote:
Ho notato che i valori degli Array non sono tenuti in memoria ma vengono
scritti per intero.
Se li tiene in memoria. Però per poterseli tenere nella memoria del client,
li dovrà pur trovare scritti da qualche parte, il browser

Quote:
Presumo sia corretto in quanto le informazioni dal server al cliente
viaggiano via TCP/IP.
Eggià.

Quote:
Dopo la costruzione, da VB.NET a Javascript passa una stringa lunga 119340
caratteri
'stica. Ma sei sicuro che sia tutto necessario?
Tra l'altro, stiamo parlando di sito web, o di web application?

Quote:
script language=javascript
"language" è deprecated:

<script type="text/javascript">

o al massimo inserisci entrambi.

Quote:
var arrRegioni=new Array();var
arrProvincie=new Array();var arrComuni=new Array();
arrRegioni[0]='ABR';arrProvincie[0]=new
Array();arrProvincie[0][0]='AQ';arrProvincie[0][1]='CH';arrProvincie[0][2]='PE';arrProvincie[0][3]='TE';arrRegioni[1]='BAS';
arrProvincie[1]=new
Array();arrProvincie[1][0]='MT';........................
ARGH. Che casotto è?
Inoltre, perché arrProvince l'hai fatto come array di array, mentre
arrComuni no, ad esempio?

Se vuoi gestire una struttura ad albero, inoltre, ti consiglio un'altro
tipo di approccio. Sarebbe da verificare poi che l'Array sia effettivamente
l'oggetto che ti serve.. ma quello dipende da cosa poi ci devi fare. Si
potrebbe optare per un object nudo e crudo scritto secondo la sintassi
dell'object initializer, ad esempio.

Quote:
'Comuni della prima provincia
arrComuni[0]=new Array('ACCIANO','AIELLI','ALFEDENA'............... ..
puoi risparmiare qualche byte con quest'altra sintassi:

arrComuni[0]=['ACCIANO','AIELLI','ALFEDINA']

Quote:
Quindi alimento le <SELECT> dagli Array() parte cliente
Primo dubbio:
Una tale mole di dati presente nella pagina può dare dei problemi ?
Oddio, se si può snellire sarebbe meglio.. anche perché dai 12k di array da
dover digerire al browser, e un array è un oggetto non un valore primitivo.

Quote:
Si velocizza se inserisco, in fase di dichiarazione, il numero numero
degli elementi tra le parentisi dell'Array(), es. Array(120)?
Io eliminerei del tutto quel tipo di gestione dell'array..

Quote:
Terzo dubbio:
Rilevo la lunghezza di una classe tipo:
arrRegioni.length e il numero lo devo assegnare,
è sufficiente o meglio convertirlo con la funzione
parseInt(arrRegioni.length) ?
E' numerica la proprietà,non ne hai bisogno.
--
ZER0

~ .. six thousand and fifty one days, eight hours, thirty five minutes, thirty three seconds.
That is when the world ended.



Reply With Quote
  #4  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: Array() e informazioni relative. - 05-25-2005 , 09:20 AM



In data Wed, 25 May 2005 15:17:45 +0200, ZER0 ha scritto:

Quote:
Dopo la costruzione, da VB.NET a Javascript passa una stringa lunga 119340
caratteri
'stica. Ma sei sicuro che sia tutto necessario?
AAARGH! 120K, non 12k!
Ritiro il "IMHO non dà problemi" scritto prima.

--
"Ho smesso di fumare.
Vivrò una settimana di più.
E in quella settimana pioverà a dirotto"
W.A.


Reply With Quote
  #5  
Old   
ZER0
 
Posts: n/a

Default Re: Array() e informazioni relative. - 05-25-2005 , 09:33 AM



On Wed, 25 May 2005 15:20:04 +0200, Cristiano Larghi wrote:

Quote:
Dopo la costruzione, da VB.NET a Javascript passa una stringa lunga 119340
caratteri

'stica. Ma sei sicuro che sia tutto necessario?

AAARGH! 120K, non 12k!
Ah, io ho letto il 12k sul tuo post e l'ho preso per buono

--
ZER0

~ .. six thousand and fifty one days, eight hours, fifty one minutes,zero seconds.
That is when the world ended.



Reply With Quote
  #6  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: Array() e informazioni relative. - 05-25-2005 , 09:52 AM



In data Wed, 25 May 2005 15:33:12 +0200, ZER0 ha scritto:

Quote:
Ah, io ho letto il 12k sul tuo post e l'ho preso per buono
:-)
parla di 119.000 caratteri...se unicode potrebbero anche essere 238 i K!
Se è una intranet (o anche internet, visto che oramai mi sono lanciato!) io
opterei per XMLHttpRequest.

--
"Ti sei salvato
o sei entrato in banca pure tu?"
A.V.


Reply With Quote
  #7  
Old   
giuseppeD
 
Posts: n/a

Default Re: Array() e informazioni relative. - 05-25-2005 , 10:12 AM



ZER0 ha scritto:

Quote:
obbiettivo: elenco su tre <SELECT>, Regioni, Comuni, Provincie, dove i
valori sono caricati da degli Array().

Da degli array client-side?
Lato client ho le funzioni per alimentare le <SELECT>, tipo:
function caricaregioni()
{ var num=parseInt(arrRegioni.length);
with (document.Form1.selRegione)
{ for (var i=0;i < num;i++)
{ options[i]=new Option(arrRegioni[i],i); }
options.selectedIndex=0; }}

Potrei scriverla tramite le classi del Framework,
ma per controllare meglio la sintassi la inserisco nella pagina HTML.
Gli Array() in considerazione che devo prelevare i dati da un db,
costruisco la stringa con VB.NET e poi genero i blocchi di script per il
lato client utilizzando le classi del Framework, così:
Me.RegisterClientScriptBlock("arrayarrayarray", "<script
language=javascript>" & sb.ToString & "</script>")
Sempre con le classi, attivo le funzioni javascript che si trovano nella
pagina HTML. Così dagli Array() che si trovano in pagina HTML, ma
costruiti tramite VB.NET, si popolano le <SELECT>


Quote:
Ho notato che i valori degli Array non sono tenuti in memoria ma vengono
scritti per intero.

Se li tiene in memoria. Però per poterseli tenere nella memoria del client,
li dovrà pur trovare scritti da qualche parte, il browser
Ho programmato principalmente applicazioni Windows, e mi capita spesso di
ragionare in modo non corretto per progetti Web.


Quote:
Dopo la costruzione, da VB.NET a Javascript passa una stringa lunga 119340
caratteri

'stica. Ma sei sicuro che sia tutto necessario?
Tra l'altro, stiamo parlando di sito web, o di web application?
ASP.NET, web application.
Seguendo i canoni ufficiali, in prima sembra che si possa costruire il
tutto utilizzando solo codice parte Codebehind, ma tale metodologia, te ne
accorgi con il tempo, affatica il server. Se l'utilizzo è minimo, nessun
problema; ma se concorrono alla pagina molti accessi ? Mi sembra di aver
capito che più utilizzi la parte cliente e più aumentano le prestazioni.
Quindi, l'esempio proposto è partito come studio di fattibilità, ma al
vedersi qualcuno ha esclamato ah ! come è veloce ! possiamo utilizzare
questo metodo anche per quel progetto .......


Quote:
script language=javascript

"language" è deprecated:

script type="text/javascript"

o al massimo inserisci entrambi.
Cercherò di correggermi.

Quote:
var arrRegioni=new Array();var
arrProvincie=new Array();var arrComuni=new Array();
arrRegioni[0]='ABR';arrProvincie[0]=new

Array();arrProvincie[0][0]='AQ';arrProvincie[0][1]='CH';arrProvincie[0][2]='PE';arrProvincie[0][3]='TE';arrRegioni[1]='BAS';
arrProvincie[1]=new
Array();arrProvincie[1][0]='MT';........................

ARGH. Che casotto è?
Inoltre, perché arrProvince l'hai fatto come array di array, mentre
arrComuni no, ad esempio?
La difficoltà, dopo la selezione della <SELECT> della provincia, è
filtrare i comuni abbinati, residenti nella parte cliente.
In prima, l'attuale, ho costruito l'Array() comuni, e tramite una funzione
leggo gli indici selezionati delle <SELECT> di Regione e provincia.
Tramite i due numeri estraggo l'Array che contiene i comuni.


Quote:
Se vuoi gestire una struttura ad albero, inoltre, ti consiglio un'altro
tipo di approccio. Sarebbe da verificare poi che l'Array sia effettivamente
l'oggetto che ti serve.. ma quello dipende da cosa poi ci devi fare. Si
potrebbe optare per un object nudo e crudo scritto secondo la sintassi
dell'object initializer, ad esempio.

'Comuni della prima provincia
arrComuni[0]=new Array('ACCIANO','AIELLI','ALFEDENA'............... ..

puoi risparmiare qualche byte con quest'altra sintassi:

arrComuni[0]=['ACCIANO','AIELLI','ALFEDINA']

Quindi alimento le <SELECT> dagli Array() parte cliente
Primo dubbio:
Una tale mole di dati presente nella pagina può dare dei problemi ?

Oddio, se si può snellire sarebbe meglio.. anche perché dai 12k di array da
dover digerire al browser, e un array è un oggetto non un valore primitivo.
Dovendo eseguire una selezione ad albero, e volendo eliminare, mi sembra
che si dice così, il roundtrip, quindi caricare i dati lato cliente, e
filtrarli all'occasione, quali altri metodi dispone Javascript ?


Ciao
giuseppeD


--

questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad abuse (AT) newsland (DOT) it




Reply With Quote
  #8  
Old   
giuseppeD
 
Posts: n/a

Default Re: Array() e informazioni relative. - 05-25-2005 , 10:32 AM



Cristiano Larghi ha scritto:

Quote:
In data Wed, 25 May 2005 15:33:12 +0200, ZER0 ha scritto:

Ah, io ho letto il 12k sul tuo post e l'ho preso per buono
:-)
parla di 119.000 caratteri...se unicode potrebbero anche essere 238 i K!
Se è una intranet (o anche internet, visto che oramai mi sono lanciato!) io
opterei per XMLHttpRequest.
Ho salvato la pagina, Array_Java_VBNET.aspx, in HTML e pesa 121 KB
(124.335 byte).
E' veloce in esecuzione ed è stato sorprendente vedere funzionare la
pagina senza l'ausilio di IIS.

Visto che ci sono, mi viene un dubbio.
In ASP.NET, in apparenza si costruiscono pagine scarne, dopo l'esecuzione
si, diciamo, gonfiano. Se i Kb possono presentare problemi, per essere
sicuro dopo costruzioni consistenti dovrei verificare la pesantezza della
pagina ?
Si sa il massimo che è meglio non superare ?

ciao
giuseppeD




--

questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad abuse (AT) newsland (DOT) it




Reply With Quote
  #9  
Old   
Claudio Procida
 
Posts: n/a

Default Re: Array() e informazioni relative. - 05-26-2005 , 03:36 AM



Il Wed, 25 May 2005 16:32:13 +0200, giuseppeD ha scritto:

Quote:
Visto che ci sono, mi viene un dubbio.
In ASP.NET, in apparenza si costruiscono pagine scarne, dopo l'esecuzione
si, diciamo, gonfiano.
beh questo accade in tutti i linguaggi server side, pensa ad esempio quando
crei una vista di una tabella

Quote:
Se i Kb possono presentare problemi, per essere
sicuro dopo costruzioni consistenti dovrei verificare la pesantezza della
pagina ?
Si sa il massimo che è meglio non superare ?
direi che 10/15 KB sia una buona idea di limite

--
Erano giorni di Maggio, tra noi si
scherzava a raccogliere ortiche


Reply With Quote
  #10  
Old   
ZER0
 
Posts: n/a

Default Re: Array() e informazioni relative. - 05-26-2005 , 03:41 AM



On Thu, 26 May 2005 07:36:04 GMT, Claudio Procida wrote:

Quote:
Visto che ci sono, mi viene un dubbio.
In ASP.NET, in apparenza si costruiscono pagine scarne, dopo l'esecuzione
si, diciamo, gonfiano.

beh questo accade in tutti i linguaggi server side, pensa ad esempio quando
crei una vista di una tabella
No,no.. forse non hai idea di cosa stai dicendo.. ma io ho visto pagine di
19kb (peso ricevuto dal client) diventare di 78kb per colpa del viewstate..

Inoltre ricordati la filosofia Microsoft.. Lei "SA" cos'è meglio per te.. quindi a
prescindere da ciò che lo sviluppatore scrive, l'IDE/il framework lo
riempie di codice che tu, programmatore, non hai mai avuto intenzione di
scrivere.

--
ZER0

~ .. six thousand and fifty two days, two hours, fifty nine minutes, eighteen seconds.
That is when the world ended.



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.