2011-06-23 22 views
12

El método pushState acepta un objeto de estado. Los documentos de Firefox dicen que el tamaño máximo de este objeto es 640kb. ¿Se define en las especificaciones cuál es el tamaño máximo más pequeño que puede implementar un navegador? ¿Puedo razonablemente esperar que los principales navegadores me proporcionen al menos 100 kb?API de historial de HTML5: ¿Cuál es el tamaño máximo que puede tener el objeto de estado?

EDITAR: Lo probé con Chrome, y aún funcionaba para objetos de estado de más de 1 MB.

+1

Hola @Kyle, debes marcar una respuesta como aceptada o responder para solicitar cualquier información adicional que necesites para obtener una respuesta aceptable. – Maverick

Respuesta

6

No. El documento normativo aquí es http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#dom-history-pushstate y ni siquiera menciona un límite para el tamaño de los datos. Sin embargo, un límite diferente se sugiere:

Los agentes de usuario pueden limitar el número de objetos de estado añadido a la sesión la historia por página.

Como puede ver en este ejemplo, la especificación generalmente evita mencionar los límites estrictos y los deja a discreción de los fabricantes de navegadores. Así que incluso si la especificación se revisa en algún momento en el futuro para considerar la posibilidad de límites de tamaño de datos, es poco probable que le proporcione un número real. En cambio, será "lo suficientemente grande para casos de uso común".

8

La especificación no establece un límite, sin embargo, los diversos navegadores tienen sus propios límites.

Firefox está bien documentado y, como dijiste, tiene 640kB ("la cantidad de RAM que alguien más necesitará").

no pude encontrar Chrome o Internet Explorer aparece en la lista en cualquier lugar, pero algunas pruebas rápidas muestra:

Chrome trabajando por lo menos hasta 10 MB (y posiblemente más),

IE golpear el límite en 1 MB (en IE11, que es todo lo que tengo a mano).

tanto, para resumir para la gente del futuro: history.state límite de tamaño del objeto es: 640kB para Firefox, 1MB para Internet Explorer 11 y al menos 10Mb para Chrome.

EDIT: versiones probadas: IE: 11, Chrome: 33, Firefox: irrelevante ya que documentan el tamaño máximo en MDN para usted :).

+0

La referencia 640K es esto: "640K debería ser suficiente para cualquiera - Bill Gates, 1981" "Entonces, ¿qué pasó, Bill?" "¿Se da cuenta del dolor que atravesó la industria mientras que la PC de IBM estaba limitada a 640 K? La máquina iba a ser de 512 K en un punto, y seguimos presionando. Nunca dije esa afirmación, dije lo contrario de eso "Gates talks" (20 de agosto de 2001) US News & World Report " –

+0

¿Podría decir si los límites se vieron afectados por el número de objetos, como se cita en una cita de la respuesta anterior? Los agentes de usuario pueden limitar el número de estados objetos agregados al historial de la sesión por página. "? ¿Qué aspecto tenían las cosas cuando se alcanzó el límite? un mensaje de error? ¿un choque? Supongo que habrá nuevos experimentos por ahora, pero gracias por esta cuenta ... – matanster

+0

El límite para Firefox no es 640 kB, es 640 kb. 640 mil caracteres: "imponemos un límite de tamaño de 640k caracteres en la representación serializada de un objeto de estado" (https://developer.mozilla.org/en-US/docs/Web/API/History_API) – SeanKendle

Cuestiones relacionadas