Velocita di getElementById

L

lorologiodoro

Ciao a tutti,

sto sviluppando una jsp che mostra all'utente una serie di celle sulle
quali ad ogni
evento onclick() eseguo la routine SelezionaSpazio passando gli id sia
della cella
che dei livelli superiodi di raggruppamento su cui ad ogni click devo
sommare o
sottrarre 1.

Il colore della cella deve cambiare inoltre da coloreOn a coloreOff. Le
celle sulla pagina sono in media di 300.

Secondo voi, calcolando che ad
ogni click devo modificare anche dei campi hidden, è corretto il mio
modo di accedere ai singoli elementi dell'HTML???

Esistono modi per accedere alle variabili HTML in modo piu rapido?

Grazie

//*****************************************************************************//

function selezionaSpazio(idtabe, idcomune, idstrada, colorOn,
colorOff) {

// Verifico che lo spazio sia selezionabile
var selezionabile = document.getElementById('slz' + idtabe);
if (selezionabile.value == 'S') {

var calledByScript = arguments[1];
var tabe = document.getElementById('tbl' + idtabe);
var sceltoComune = document.getElementById('slc' + idcomune);
var sceltoStrada = document.getElementById('sls' + idstrada);
var scelta = document.getElementById('ssp' + idtabe);
//var scelta = document.getElementByName('SELSPEJ' + idtabe);
var prezzo = document.getElementById('prs' + idtabe);

var valorePre = document.getElementById('valpre');

var immagscelta = document.getElementById('bas' + idtabe);

var immagopzione = document.getElementById('bal' + idtabe);
var opzione = document.getElementById('opz' + idtabe);

document.JPRE02.SAVPAGJ.value = 'N';

if (!tabe) return;
if (scelta.value != 'S') {
tabe.bgColor = colorOn;
tabe.title = 'Spazio prenotato';
sceltoComune.value = Number(sceltoComune.value)+ 1;
sceltoStrada.value = Number(sceltoStrada.value)+ 1;
scelta.value = "S";
immagscelta.src='../gif/led-red.gif';
immagscelta.alt='Spazio selezionato';
valorePre.value = parseFloat(valorePre.value) +
parseFloat(prezzo.value);
}
else {
tabe.bgColor = colorOff;
tabe.title = 'Spazio non prenotato';
sceltoComune.value = Number(sceltoComune.value)- 1;
sceltoStrada.value = Number(sceltoStrada.value)- 1;
scelta.value = "N";
immagscelta.src='../gif/led-gray.gif';
immagscelta.alt='Seleziona Spazio';
immagopzione.src='../gif/led-gray.gif';
opzione.value = 'N';
immagopzione.alt='Opziona Spazio';
valorePre.value = parseFloat(valorePre.value) -
parseFloat(prezzo.value);
}

//if (!calledByScript) saveCategState();

// Verifico se lo spazio era gia venduto
var giavenduto = document.getElementById('gvn' + idtabe);
if (giavenduto.value == 'S') {
tabe.bgColor = '#CCCCCC';
tabe.title = 'Spazio venduto';
selezionabile.value = 'N'
immagscelta.src='../gif/led-red.gif';
}

}

}

//*****************************************************************************//
 
D

Dr John Stockton

JRS: In article <[email protected]>,
dated Mon, 22 May 2006 04:41:23 remote, seen in
news:comp.lang.javascript said:
Esistono modi per accedere alle variabili HTML in modo piu rapido?

function selezionaSpazio(idtabe, idcomune, idstrada, colorOn,
colorOff) {

// Verifico che lo spazio sia selezionabile
var selezionabile = document.getElementById('slz' + idtabe);

AIUI, that must search through all the IDs until it finds the one
wanted. Possibly, if you can put all those elements in a Form, and
identify the form as (effectively) var F = this.form, you can address
the elements within the form and search only within the form. Newsgroup
FAQ & FAQ notes may help.

Also, you could do some of the lookups in onLoad code, and store the
references in global variables for use later - e.g. valorePre.

sceltoComune.value = Number(sceltoComune.value)+ 1;

General : with S a string, +S should be faster than Number(S) + 1.
Particular : How about sceltoComune.value++ ??

valorePre.value = parseFloat(valorePre.value) +
parseFloat(prezzo.value);

Likewise, faster,
valorePre.value = +valorePre.value + +prezzo.value ;



Don't let your posting agent line-wrap code; posted code should be
directly executable. Indent with two or three spaces.

I regret to say that there's only one thing I can write in Italian; I
don't know exactly what it means, but it seems irrelevant here.
 
L

lorologiodoro

hi,
thank you for your help...
my IDs are already putted in a form ...

what do you mean when you talk about form? ... do you mean that the
variable value returns faster if i use document.form.SELEZI.value in
stead of getelementbyID?

on your opinion how could i store values in global variables in the
onLoad code? ... how can i update HTML variables from global variables?
....

thank you
and...
sorry for my poor english! :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,150
Messages
2,570,853
Members
47,394
Latest member
Olekdev

Latest Threads

Top