2015-05-18 4 views
15

Ho un selettore di date sul mio sito che utilizza solo il selettore di date html5 predefinito.Perché Chrome, il selezionatore di date HTML5 nativo di Android è diventato davvero lento?

Ho notato che fino a un paio di settimane fa, funzionava bene ma da un recente aggiornamento su Chrome Android, hanno introdotto un nuovo selettore di date e questo selettore di date è molto lento e non risponde. Ci vogliono diversi secondi per caricare e trovo davvero difficile scegliere qualsiasi data.

Ho un sito demo che lo illustra (http://datapickerandroid.meteor.com/). L'ho provato su un Nexus 7 2013 e HTC One M8 e Chrome su Android hanno entrambi questo problema. L'ho anche testato con dolphin e firefox e anche sui browser desktop, sembrano perfetti quindi sembra che si tratti di un problema con il raccoglitore di date su Chrome.

Mi chiedo cosa sta succedendo? C'è solo un bug in Chrome Android? Sta succedendo solo per i miei dispositivi? Sto dichiarando il mio selezionatore di date in modo errato? È possibile specificare al browser che vorrei usare il vecchio selettore di date? Sto anche usando Meteor (sebbene nella demo, ho rimosso tutti i pacchetti non predefiniti), potrebbe essere qualcosa a che fare con quello?

risposta

25

Vedere crbug.com/441060. Puoi evitare questa lente specificando min = e max = attributi.

+3

wow grazie! Ho appena specificato min = '0001-01-01' e max = '9999-12-31' ed è di nuovo veloce. Non posso credere che questo bug esista in un'applicazione così ampiamente utilizzata – Diskdrive

+2

Non credo che il link sia ancora vivo. – apokryfos

4

Per un po 'più di informazioni, ho fatto un po' di gioco con l'impostazione no min/max, max only, min e max. Ognuno ha diversi comportamenti/prestazioni.

No min o max - clic in Android sarà molto lento

<input type="date"> 

Max solo - cliccando in Android sarà impostare il valore di default al 01/01/0001 - primo giorno mai. Inutile

<input type="date" max="1979-12-31"> 

min e max - data predefinita è oggi, e carica molto rapidamente!

<input type="date" min="0001-01-01" max="9999-12-31" > 

https://jsfiddle.net/gpjc3xam/16/


Aggiornamento

Per coloro che utilizzano questa soluzione con angolare, si ricorda che la data min nell'anno 0001 will not work. Sembra che l'anno 100 sia il più basso Javascript consentirà ...