Ho cercato di creare il mio lettore multimediale personalizzato utilizzando HTML5 e Jquery.Durata audio NaN su determinate azioni di richiesta di pagina
Ho seguito approcci diversi e ho incontrato alcuni problemi in base al mio modo di aggiornare la pagina.
primo caso
$(document).ready(function(){
duration = Math.ceil($('audio')[0].duration);
$('#duration').html(duration);
});
In questo caso, la durata restituisce NaN quando ho reindirizzare la pagina allo stesso URL premendo il tasto ENTER
nella barra degli indirizzi. Tuttavia, funziona perfettamente quando si aggiorna utilizzando lo reload button
o premendo il pulsante F5
.
Secondo caso
Ho letto in alcune risposte che la durata di carico dopo l'evento loadedmetadata
potrebbe aiutare. Così ho provato la seguente:
$(document).ready(function(){
$('audio').on('loadedmetadata', function(){
duration = Math.ceil($('audio')[0].duration);
$('#duration').html(duration);
});
});
Sorprendentemente, in questo caso, l'inverso del primo caso è accaduto. La durata viene visualizzata completamente bene nel caso di un reindirizzamento, ovvero premendo ENTER
nella barra degli indirizzi. Tuttavia, nel caso di aggiornamento utilizzando il pulsante F5
o reload button
, la durata non viene visualizzata affatto, nemmeno NaN che mi ha portato a credere che il codice non venga eseguito affatto.
Ulteriore lettura suggerito che questo potrebbe essere un bug nei browser WebKit, ma non ho trovato nulla di conclusivo o utile.
Quale potrebbe essere la causa di questo comportamento particolare? Sarebbe bello se potessi spiegarlo insieme alla soluzione a questo problema.
Modifica: Sono principalmente alla ricerca di una spiegazione dietro questa differenza di comportamento. Mi piacerebbe capire il meccanismo alla base del rendering di una pagina nel caso di reindirizzamento e aggiornamento.
Farò un tentativo e tornerò da te. –
No. Ancora non funziona. La cosa più particolare è il modo in cui si comporta diversamente nel caso di reindirizzamento rispetto all'aggiornamento della pagina. Qual è la differenza tra l'uno in termini di sequenza di caricamento della pagina? –
Sì, ho provato tre diversi casi ora. Il caricamento e il ricaricamento di entrambi restituiscono lo stesso comportamento. –