2010-01-06 21 views
17

Pensé que había respondido esta pregunta antes gracias a StackOverFlow, pero rápidamente tomé una respuesta y resultó no ser la verdadera causa de mi problema.Las páginas cargan dos veces en Firefox?

He comprobado mi Apache registro de acceso:

Este soy yo hojear mi aplicación web en Google Chrome Browser.

127.0.0.1 - - [06/Jan/2010:22:17:35 +0000] "GET /webs/end/new.php HTTP/1.1" 200 2146 
127.0.0.1 - - [06/Jan/2010:22:17:36 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548 
127.0.0.1 - - [06/Jan/2010:22:17:38 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042 

Este soy yo navegando por mi aplicación web en IE7.

127.0.0.1 - - [06/Jan/2010:22:21:49 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548 
127.0.0.1 - - [06/Jan/2010:22:21:50 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042 

Esta soy yo navegando por mi aplicación web en Firefox.

127.0.0.1 - - [06/Jan/2010:22:18:08 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548 
127.0.0.1 - - [06/Jan/2010:22:18:09 +0000] "GET /webs/end/settings.php HTTP/1.1" 200 4548 
127.0.0.1 - - [06/Jan/2010:22:18:10 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042 
127.0.0.1 - - [06/Jan/2010:22:18:10 +0000] "GET /webs/end/index.php HTTP/1.1" 200 2042 
127.0.0.1 - - [06/Jan/2010:22:18:11 +0000] "GET /webs/end/new.php HTTP/1.1" 200 2146 
127.0.0.1 - - [06/Jan/2010:22:18:12 +0000] "GET /webs/end/new.php HTTP/1.1" 200 2146 

Esto es solo yo haciendo clic alrededor. Pero cuenta que para cada solicitud de página, parece que Firefox está cargando la página dos veces y está efectuando mis scripts PHP, ya que se están ejecutando dos veces y realizando dos inserciones en mi base de datos.

¿Por qué es el caso? Estoy usando Firefox 3.5.6. Supongo que este es un problema de Firefox en lugar de PHP/Apache.

+0

Realmente espero que las inserciones de las que habla estén registrando estrictamente. Si la emisión de solicitudes GET causa algún otro cambio de datos, entonces tiene serios problemas de diseño aquí. – NotMe

+1

'Si la emisión de solicitudes GET causa algún otro cambio de datos, eso es una afirmación completamente falsa. No hay diferencia si acepta una serie de parámetros de entrada desde un conjunto de campo de formulario en la publicación o una colección de cadena de consulta en una obtención. –

+1

No diría que no hay diferencia. En primer lugar, la solicitud posterior requeriría una nueva publicación (que la mayoría de los navegadores solicitarían al usuario), mientras que una solicitud GET puede volver a solicitarse fácilmente (sin querer) y copiar la URL y pegarla la volvería a solicitar. Además, alguien podría poner fácilmente un enlace en un img en su sitio con el src apuntando a su sitio, y cualquiera que visite su sitio lo publicará en su sitio. Si su seguridad está basada en cookies, su cookie aún se enviará. Por lo tanto, existen bastantes razones para no utilizar GET para publicar datos que se persistan o solicitudes que alterarán los datos. –

Respuesta

13

Qué complementos tienes instalados en Firefox, es posible que estén realizando solicitudes de forma silenciosa, especialmente FireBug. Intente apagar firebug & para ver si todavía sucede.

Como se menciona en el comentario a continuación, la última versión de FireBug no debería estar haciendo esto, si no lo está, intente deshabilitar todos sus complementos (o ejecute Firefox en modo a prueba de fallos) y vea si todavía ocurre

+0

Con una versión anterior de Firebug tuve este problema. –

+0

Sí, la última versión no hace esto, por lo que este puede no ser el problema. –

+0

Tengo firebug y su versión: 1.4.5, que es la última versión. – Abs

11

Revisa los encabezados Aceptar en la segunda solicitud. ¿Parece ser una solicitud de una imagen? Si es así, puede tener un atributo "src" vacío en una etiqueta "img" o una definición de "url" vacía en una propiedad de CSS que está causando la segunda solicitud.

Más información aquí: http://icanhascode.com/2008/06/the-mystery-of-the-multiple-requests/

En general, este problema es un dolor de rastrear.

+0

Fue una falla de hoja de estilo para mí. ¡Gracias! – Bogdan

1

Esta línea es un poco de Dreamweaver impulsado HTML y causó el navegador para cargar dos veces (con el tipo de documento eliminado y Firebug desactivado):

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
+0

esta línea: Gordon

2

Como se ha mencionado por Michael Morton, etiquetas IMG con falta SRC puede ser un problema . También podrían ser atributos HREF vacíos en las etiquetas A. He usado jQuery para identificarlos rápidamente:

http://www.planbox.com/blog/development/coding/browser-send-same-request-twice-or-multiple-times.html

En resumen, ejecute esto en Firebug:

$('img[src=""],a[href=""]')
+0

3

Este fue un tema declaración charset para mí también - sacarla de todos los meta etiquetas y declararlo en otro lugar!

+1

Este fue también mi problema . cambiando: a corregido eso. – owise1

+0

@ owise1 Tu solución funcionó para mí. Muchas gracias. – LoneWOLFs

6

Tuve el mismo problema otro día. La solución se puso

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

más alto en el código. Hubo algunos códigos CSS cargándose antes.

+0

Tuve que moverlo antes de una instrucción ''. – Keith

+0

Todavía no está funcionando. ¿tienes alguna solución alternativa? –

0

Ninguno de estos funcionó para mí. Muchas horas de preocupación ... aquí está cuál era mi problema:

Tenía un enlace HTML con un botón dentro. Descubrí que este era el problema porque cuando lo probé en IE, el botón no funcionaba (los botones aún funcionaban en Firefox).

MAL:

<a href=''><button class='btn'>Test</button></a> 

DERECHA:

<a class='btn' href=''>Test</a> 

funciona ahora y no más doble toque.

0

En mi caso tuve etiquetas duplicadas como este:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

<!-- more code --> 

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

después de sacarlo de mi plantilla de Blogger, Firefox dejado de volver a cargar la página.

0

Estoy usando mozilla firefox 46.0.1 y tengo el mismo problema. Pero noté que ocurrió solo cuando mi script php tenía errores de advertencia. Configuración error_reporting(0); en mi script php detuvo la doble ejecución de la secuencia de comandos. Después de probar todas las sugerencias anteriores, por supuesto.

Cuestiones relacionadas