Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Tempo di cericamento della pagina

    Ciao a tutti! ho provato a cercare un pò per il forum, ma forse sono stato troppo fagiano per trovare qualcosa adatto alle mie esigenze:

    avrei bisogno di uno script che misuri il tempo effettivo di caricamento di una pagina in javascript, per misurare la differenza di velocità tra browser.. come faccio??

    ¥¨²ºº³ ¨¥ ·´¯`·._.-» ®Ëh|ßÊ «-._.·´¯`· ¥¨¨¥

    Mouse not found. Click mouse button to continue.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non e` difficile da fare, ma hai necessita` che la misura si afatta su una rete locale non prossima alla saturazione, altrimenti trovi valori che dipendono piu` dalla rete che dal browser.

    Comunque:

    Nella head, prima di altre istruzioni:
    <script language="javascript" type="text/javascript">
    var inizio = Date();
    </script>

    Poi metti un JS, ancora nella head, ma in una posizione a tua scelta:
    <script language="javascript" type="text/javascript">
    function calcola() {
    var fine = Date();
    var durata = fine-inizio;
    alert("la pagina ha impiegato "+durata+"millisecondi");
    </script>

    Tale funzione la richiami con
    <body ... onLoad="calcola();">

    Chiaramente il calcolo non e` preciso su tutta la pagina. In particolare restano fuori l'inizio (fino al caricamento del primo script) e il tempo di calcolo (che forse non ti interessa), ma dovrebbe darti un'idea abbastanza buona.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    intanto grazie.. cmq se metto il primo script appena sotto il tag <head> dovri perdere praticamente solo pochi byte del doctype e i 2 tag html e head, giusto? e il tempo di calcolo dovrebbe essere abbstanza rapido, spero: dopotutto è una emplice sottrazione!

    cmq se invece di far partire una popup volessi scrivere il risultato nella pagina? (è possibile farlo solo in un campo di un form o anche in una frase normale??)

    cioè è possibile scrivere nella pagina "Pagina caricata dal browser in $tot secondi"??

    ¥¨²ºº³ ¨¥ ·´¯`·._.-» ®Ëh|ßÊ «-._.·´¯`· ¥¨¨¥

    Mouse not found. Click mouse button to continue.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    >>se metto il primo script appena sotto il tag <head> dovri perdere
    >>praticamente solo pochi byte
    Si`, per quanto riguarda i byte non lo vedo un problema, eventualmente puo` esserci un ritardo tra quando viene trasmessa la richiesta della pagina e quando viene visualizzata.
    Mi spiego meglio.
    Cosa intendi per "velocita`" di caricamento?
    In tale velocita` includi anche il tempo tra la pressione del link e la trasmissione al server? E il tempo tra l'inizio della trasmissione dal server e l'inizio della visualizzazione?
    Questi due intervalli li perdi con lo script che ti ho dato.

    >>il tempo di calcolo dovrebbe essere abbstanza rapido, spero:
    >>dopotutto è una emplice sottrazione
    Esatto, e poi e` comune per tutti (se la macchina e` la stessa).

    >>cmq se invece di far partire una popup volessi scrivere il
    >>risultato nella pagina?
    Per scrivere in un campo di un form non e` un problema. Io ho usato un alert solo perche` era piu` veloce da scrivere.
    Scrivere in un div, invece, si puo` fare, ma devi usare document.NOMEDIV.innerText = "..."
    che non e` supportato da tutti i browser, per cui se fossi in te lo eviterei (chiaramente non puoi scrivere con document.write, dato che al momento della scrittura la pagina e` gia` caricata e chiusa (hai gia` scritto il </body> ).

    Quando hai fatto le prove puoi postare un sunto dei risultati con i vari browser? Sarebbe bello vedere le differenze con pagine diverse (con immagini gif, con immagine jpg, senza immagini, con molte strutture innestate [ad es. con varie table, div, ...], con CSS complessi, ...)

    Nota: la pagina da monitorare dovrebbe essere un po' presante: se i tempi sono decisamente inferiori a 10 ms, i dati potrebbero risentire troppo delle condizioni al contorno.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    grazie per le delucidazioni.. cmq mi sa che sto sbagliando qualcosa: questo è il codice preso dalla pagina che ho fatto:

    codice:
    <head>
    <script language="javascript" type="text/javascript">
    var inizio = Date();
    </script>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" href="stile.css" type="text/css" />
    <title>Pagina di prova di Under construction PHpage</title>
    <script language="javascript" type="text/javascript">
    function calcola() {
    var fine = Date();
    var durata = fine-inizio;
    alert("la pagina ha impiegato "+durata+" millisecondi");
    }
    </script>
    </head>
    <body onLoad="calcola();">
    solo che l'alert mi stampa sempre "La pagina ha impiegato NaN millisecondi"!! :master: :master:
    ¥¨²ºº³ ¨¥ ·´¯`·._.-» ®Ëh|ßÊ «-._.·´¯`· ¥¨¨¥

    Mouse not found. Click mouse button to continue.

  6. #6
    ops, double post..
    ¥¨²ºº³ ¨¥ ·´¯`·._.-» ®Ëh|ßÊ «-._.·´¯`· ¥¨¨¥

    Mouse not found. Click mouse button to continue.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    A parte che non ho mai usato Date() per questo scopo,
    e a parte che c'e` un piccolo errore (mi sono dimenticato un new) che pero` non dovrebbe pregiudicare:
    var inizio = new Date();
    Non dovrebbero esserci altri errori.

    Prova eventualmente a trasformare in intero:
    var durata1 = fine-inizio;
    var durata = parseInt(durata1);

    Si potrebbe anche pensare di trasformare in numero i singoli inizio e fine, ma non ci starebbero in un intero, e con un float ci sarebbe troppo poca precisione.

    Spero che cosi` funzioni, altrimenti e` necessario usare funzioni differenti, che io non ho mai usato.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    in effetti ora funge: andava fatto
    var inizio = new Date();
    e
    var fine = new Date();

    per farlo fungere!!

    grazie mille! A questo punto provo a fare un ultima richiesta, visto che in jscript non so fare nada: come posso fare per trasformare i milliseondi in secondi con la virgola??

    cioè ad esempio 22134 millisecondi = 22,143 secondi??
    ¥¨²ºº³ ¨¥ ·´¯`·._.-» ®Ëh|ßÊ «-._.·´¯`· ¥¨¨¥

    Mouse not found. Click mouse button to continue.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    E ma stai diventando esigente ...

    Partiamo dal dato in ms salvato in un intero durata.

    durata /= 1000; // trasforma in secondi
    durat = durata.toString(); // trasforma in stringa
    durat = durat.replace(/\./, ","); // sostituisce il punto con virgola

    ora nella stringa durat hai il valore in secondi con la virgola.

    Nota: nella parentesi di replace ci sono i caratteri:
    slash backslash punto slash virgola spazio virgolette virgola virgolette

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    grazie mille per l'aiuto!!
    ¥¨²ºº³ ¨¥ ·´¯`·._.-» ®Ëh|ßÊ «-._.·´¯`· ¥¨¨¥

    Mouse not found. Click mouse button to continue.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.