2008-10-24 12 views

Respuesta

8

No hay ninguna razón técnica que impida que el navegador calcule el total de bytes que se enviarán y luego el seguimiento de cuántos ha recibido el servidor (Gracias, Kibbee por su comentario). Firefox tenía un indicador de progreso de carga funcional hasta la versión 0.9, pero eso build lo rompió en 2004.

Al leer las actualizaciones de Bugzilla, parece que esta característica no parece beneficiar a suficientes usuarios como para que los desarrolladores obtengan tracción.

Los usuarios que cargan regularmente archivos muy grandes tienden a utilizar herramientas como FTP que están diseñadas para este fin, por lo que no se ven afectadas.

+0

Así que el navegador solo podía adivinar pero nunca saber con certeza cuántos datos se recibieron del servidor porque no hay conexión de control como en FTP. Por lo tanto, debe crear su propia "conexión de control" con sondeos AJAX ... – Egon

+0

El cliente sabe cuánto se envía, que es la parte que es relevante para un medidor de progreso de carga. Si se pierden algunos datos, eso no es realmente relevante para el progreso de la carga. – Gerald

+0

@Gerald: Buen punto. Entonces, un navegador podría mostrar un indicador de progreso y etiquetarlo como "bytes enviados". Sería útil mostrar el número de reintentos en el indicador y actualizarlo cada dos segundos para mostrar al usuario por qué una carga estaba yendo lentamente. – flamingLogos

2

Tienes que colocar de nuevo a cargar un archivo, independientemente de si está o no está siendo "astuto" al respecto (utilizando iframes escondidos, por ejemplo); la barra de progreso propia del navegador (generalmente en la barra de estado) es la barra de progreso de carga de archivos en ese sentido, aunque no exactamente.

alt text

Es sólo que no se puede utilizar fácilmente que los datos por sí mismo, así que hay que aproximarse con un montón de trucos de comunicación cliente-servidor.

+0

El punto es que al ser el archivo en el cliente, es una tontería tener que retransmitir en ese truco de cliente-servidor. Debería depender del navegador realizar un seguimiento de la cantidad de material que se está produciendo ... como FTP, a menos que haya algo más de lo que no tenga conocimiento. – Egon

+0

Lo olvidé, la barra de estado comienza justo después de que el navegador recibe la respuesta del servidor (al menos en Firefox) – Egon

0

El navegador web siempre ha sido eso, un navegador de la web. Es un mecanismo para el consumo. Nuestra capacidad para subir información a través del mismo portal es algo así como un truco.

7

Agregando al argumento flamingLogos, puede operar detrás de un proxy que toma sus cinco megabytes de bondad pura en un segundo, y luego lo envía al servidor a través de un módem de 56kbit.

Percibo una barra de progreso incorrecta ligeramente peor que ninguna barra de progreso en absoluto, y habría muchas personas para las que sería incorrecto todo el tiempo.

+0

Esa es probablemente la razón por la que sfwupload no funcionaba para mí ... Estaba detrás de un proxy :-) – Egon

1

No hay una razón técnica real por la que no pueda tener un indicador de progreso razonable como lo hace con las descargas. Debe sugerirlo como una solicitud de función a su navegador favorito.

Dicho esto, creo que la razón principal por la que hay tantos componentes de carga basados ​​en javascript/flash/ajax no es tanto para proporcionar barras de progreso (aunque esa es una buena ventaja). Por lo general, se debe a que desean proporcionar una mejor IU para seleccionar los datos que se cargarán y, a veces, manipular los datos antes de cargarlos. La característica básica de carga de archivos que está en las especificaciones de HTML da como resultado el botón "Examinar ..." que abre un cuadro de diálogo de diálogo abierto y carga los datos de archivo sin procesar como están en el servidor.

3

Sí, es una tontería, y por alguna razón los fabricantes de navegadores lo están ignorando. Rechazaría encarecidamente que los usuarios de archivos de gran tamaño utilicen FTP; casi nadie sabe nada de eso y todas las aplicaciones web comunes requieren cargas HTTP para video, audio e imágenes (por ejemplo, youtube).

Resulta irónico que la participación del usuario y los medios son la clave de la Web 2.0, pero el mecanismo principal para la participación de los usuarios es tan poco manejado por los navegadores.

Para Firefox se han producido errores que languidecen durante años, como un indicador del desarrollo del mejor subir: https://bugzilla.mozilla.org/show_bug.cgi?id=243468

Get votar! :)

La barra de progreso existente en la barra de estado se rompe durante años - véase el bug 249338 - y que le permitirá silencio cancela una carga - véase el bug 432768.

0

Chrome tiene una barra de carga que muestra el% de la carga.

O, como Peuchele dice, también hay un Addon para Firefox.

Cuestiones relacionadas