View Full Version : [javascript]prestazioni
Non ci credo in javascript risulta più veloce lavorare con le stringhe che con i metodi DOM!!!
Un if all'interno di un ciclo for incide molto secondo voi?
Come faccio a fare dei test per sapere quanto ci mette con una certa precisione?
Non ci credo in javascript risulta più veloce lavorare con le stringhe che con i metodi DOM!!!In che senso?? Cioè a cosa ti riferisci in particolare? :stordita:
Ad esempio, se ho del testo html, dal quale voglio estrapolare informazioni, fa prima a fare dei gran testo.split() testo.match() testo.search() che a mettere il testo in un elemento DOM (var dom=document.createElement(testo) ) e ad usare metodi dom, dom.getElementsByTagName("tag") ecc ecc ...
Alemno questo è quello che mi pare
Convieni o non convieni con me? :D
Ad esempio, se ho del testo html, dal quale voglio estrapolare informazioni, fa prima a fare dei gran testo.split() testo.match() testo.search() che a mettere il testo in un elemento DOM (var dom=document.createElement(testo) ) e ad usare metodi dom, dom.getElementsByTagName("tag") ecc ecc ...
Alemno questo è quello che mi pareDipende da cosa devi fare ... sono due cose diverse quelle che hai detto.
split/match/search li usi su una stringa, mentre nel secondo caso vai a cercare un tag particolare usando il DOM. Credo (ma potrei anche sbagliarmi) che cercare un tag particolare con getElementsByTagName sia più veloce e pratico.
Lo so anchio che sono due cose diverse.
Metti che hai una stringa, e ripeto stringa così:
<div id="pippo" onclick="function();">
<span id="pluto"> ciaoooooo </span>
</div>
e mettiamo che tu voglia ricavare la scritta "ciaoooooooo".
O utilizzi metodi stringa o incapsuli la stringa in un oggetto DOM:
var dom=document.createElement(stringaHTML);
var ciao=dom.getElementsByTagName("span")[0].innerHTML;
Ecco, a me sembra che sia sensibilmente più veloce lavorare con le stringhe che incapsulare una stringa in un oggetto DOM, ma come faccio a fare una misurazione di ciò?
Non vorrei che il tempo perso è tutto nella creazione dell'oggetto document.createElement(stringaHTML);
Lo so anchio che sono due cose diverse.
Metti che hai una stringa, e ripeto stringa così:
<div id="pippo" onclick="function();">
<span id="pluto"> ciaoooooo </span>
</div>
e mettiamo che tu voglia ricavare la scritta "ciaoooooooo".
O utilizzi metodi stringa o incapsuli la stringa in un oggetto DOM:
var dom=document.createElement(stringaHTML);
var ciao=dom.getElementsByTagName("span")[0].innerHTML;
Ecco, a me sembra che sia sensibilmente più veloce lavorare con le stringhe che incapsulare una stringa in un oggetto DOM, ma come faccio a fare una misurazione di ciò?
Non vorrei che il tempo perso è tutto nella creazione dell'oggetto document.createElement(stringaHTML);Non ho capito perché usi createElement.
Se hai:
<div id="pippo">
<span id="pluto"> ciaoooooo </span>
</div>
la soluzione più semplice per ottenere il testo in span è:
var obj = document.getElementById ("pluto");
var testo = obj.innerHTML;
Perchè quella è una stringa che contiene codice html, non fa parte di una pagina!
Mi spiego meglio:
var str='<div id="pippo" onclick="function();">'+
'<span id="pluto"> ciaoooooo </span>'+
"</div>";
var dom=document.createElement(str);
var testo=dom.getElementsByTagName("span")[0].innerHTML;
Perchè quella è una stringa che contiene codice html, non fa parte di una pagina!
Mi spiego meglio:
var str='<div id="pippo" onclick="function();">'+
'<span id="pluto"> ciaoooooo </span>'+
"</div>";
var dom=document.createElement(str);
var testo=dom.getElementsByTagName("span")[0].innerHTML;
Al metodo createElement puoi solo passare il nome di un tag e basta, non tutta la pappardella di codice html!!
es.
var my_div=document.createElement("div");
si mi sn sbagliato a scrivere veloce per fare l'esempio.
Considera quella stringa inserita in tag.
var my_div=document.createElement("div");
my_div.innerHTML=str;
ecco ora avrai
<div>
<div id="pippo" onclick="function();">
<span id="pluto"> ciaoooooo </span>
</div>
</div>
ed anche un riferimento DOM per navigarlo coi metodi dom.
Questo lo so mi sono solo sbagliato nella fretta a far l'esempio, è proprio così infatti che faccio, e lo trovo pìù lento...
Secondo te la lentezza è data dalla creazione dell'oggetto?
O sono poprio i metodi dom ad essere + "lenti"?
C'è un modo per misurare la velocità? Non so qualche metodo per beccare il tempo così da fare un dt
C'è un modo per misurare la velocità? Non so qualche metodo per beccare il tempo così da fare un dtGuarda, non ho tempo adesso per fare delle prove ma se vuoi misurare il tempo impiegato puoi fare:
var d1 = new Date ();
// ... tue operazioni ...
var d2 = new Date ();
var diff = d2 - d1;
alert (diff + " millisecondi");
Grazie mille!! provo e ti faccio sapere ( nel caso ti interessi :D)
Ho notato che c'è una bella differenza, quasi il doppio del tempo ci mette, mentre escludendo la creazione dell'oggetto ci mette poco di più.
In generale ho notato che è più svelto a lavorare con le stringhe.
I metodi ricorsivi dovrebbe essere un pelo più prestazionali dei comuni cicli for e while giusto?Mi riferisco a qualunque linguaggio, cioè intendo come metodo di programmazione.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.