c'è una dimensione massima per la lunghezza di un input nascosto in html?


92

in altre parole:

<input type="hidden" value="Can I put as much as I want in here, or is there a limit?" />

e se sì, che cos'è?


6
Il miglior metodo per chiedere che abbia mai visto.
Andrés Morales

Risposte:


59

Dipende dal metodo con cui invii il modulo.

Con GET, esiste un limite comunemente concordato di circa 1-2 kilobyte, a seconda delle limitazioni del browser e del server.

Con POST, non ci sono limiti tecnici nel browser, ma di solito uno sul lato server - vedi ad esempio Apache LimitRequestBody, PHP post_max_sizee così via.


Attenzione ai problemi segnalati da @naugtur di seguito per i campi di immissione del testo - almeno per quelli ci sono limiti tecnici imposti da browser diversi.
Oliver

Ho appena eseguito alcuni test su 3 browser un po 'attuali (IE9, FF 10 ESR, Chrome 24) e tutti hanno inviato valori di input nascosti di 100KB senza alcun problema. Quindi i problemi con gli input di testo non sembrano applicarsi qui.
Oliver

che ne dici di textareas?
Francisco Corrales Morales,

@FranciscoCorralesMorales non importa di che tipo sia il campo di input - ciò che conta è il risultato finale, la somma di tutti i dati che stai inviando
Pekka

Ho scoperto che Safari ha troncato l'input nascosto. L'utilizzo di un'area di testo ha risolto il problema.
Brendon Muir

29

Avvertimento! Ho riscontrato problemi con <input type="text">quando il testo è più lungo di 65535 (dimensione massima int con segno)

Incollare il testo sembra causare uno strano trabocco di contenuti. Avvistato in webkit.

[modificare]

La dimensione della richiesta GET non è esattamente limitata al modo in cui Pekka ha scritto. C'è un limite di 2083 byte per l'intera stringa di query GET soloaddress?params in Internet Explorer In altri browser non c'è praticamente alcun limite, ad esempio con FireFox che invia query GET di oltre 100 KB. Ovviamente il server deve consentirli.

Non è coperto dalla documentazione, quindi è necessario testarlo per conoscere i limiti degli altri browser. IE: http://support.microsoft.com/kb/208427


8
+1 Ho creato questo jsFiddle per verificare cosa succede quando imposti un valore di input su una stringa molto lunga: jsfiddle.net/3TVPL/6 Ho usato una stringa lunga 65537 caratteri. Nel mio test Crome 24.0.1312 e Safari 5.1.7 per Windows mostrano entrambe le caselle di input come vuote dopo aver impostato il valore su quella stringa. Chrome mostra il valore non vuoto corretto se riduco la stringa a 65536 caratteri. Altri browser (Firefox 17, IE8, IE9, IE10, Opera 12.12) non hanno avuto problemi anche con stringhe molto più lunghe (sono salito fino a circa 1.2 Mb di stringhe)
beluga

@beluga ottimo lavoro. qualche idea sulla performance? Sulla mia macchina debole è stata una lunga attesa. Immagino sia per questo che webkit non lo rende.
naugtur

Buon punto, forse. Al momento non ho eseguito alcun test delle prestazioni. Ho una macchina piuttosto rinforzata al lavoro e non ho notato alcun ritardo in nessuno dei browser.
beluga

Ha reso il mio FF inutilizzabile per circa 5 minuti. Mettere così tanto in un campo modulo non è comunque una buona idea :)
naugtur

I browser mobili e i proxy possono anche troncare i campi nascosti
George Filippakos
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.