2010-01-28 14 views
6

OK, primero algunos antecedentes: Tengo una página que muestra el número de visitas (o vistas) de cualquier elemento seleccionado. El procedimiento de contador que se llama en cada carga de la página es decirLa carga de la página se dispara dos veces en Firefox

if (Request.QueryString.HasKeys()) 
{ 
    // get item id from icoming url e.g details.aspx?itemid=26    

    string itemid = Request.Params["itemid"]; 

    if (!Page.IsPostBack) 
    { 
     countHit(itemid); 
    } 
} 

El problema: mi expectativa era que el contador se incrementa en 1 en cada carga de la página, pero los contadores en mi lista de datos y formview son siempre detrás y dio un paso por 2 es decir,

en lugar de 1, 2, 3, 4, es 0, 2 , 4, 6.

Parece que la carga de la página se está disparando dos veces. Más tarde descubrí que esto solo sucede cuando estás usando Mozilla Firefox. La página se comporta bien con otros navegadores como IE

Esto se vuelve bastante frustrante.

+0

Es posible que desee d/l violinista, que es un proxy HTTP y ver lo que realmente sucede entre el servidor web y el navegador. –

+0

... Hice algunas excavaciones ... parece que FF está repitiendo la misma solicitud por alguna razón dos veces. –

Respuesta

23

He visto a Page_Load disparar dos veces si tiene un <asp:Image> o un <img runat="server"> en la página que no tiene su atributo src especificado.

Podría valer la pena mirar.

+0

+1 ¡gracias un millón! Por alguna razón, FF siente la necesidad de repetir una solicitud si una etiqueta img pierde el atributo src. –

+0

Sí, es una extraña, está bien. Me alegro de poder ayudar. –

+0

pareces haber pasado mucho tiempo en ASP.NET, +1 –

0

La razón más probable es que llame al procedimiento dos veces.

+0

Yo también lo pensé. Pero no hay nada que hacer en page_load aparte de establecer el parámetro @id para mi fuente de datos sql. –

+0

Intente registrar la llamada para que pueda verla cuando se llame. –

+0

No lo creerá, pero parece que el problema radica en Mozilla Firefox. La página funciona bien en IE y otros navegadores ... ¡parece que Mozilla está haciendo llamadas duplicadas al servidor! ... ¿Alguna vez alguna vez ha encontrado tal escenario? (FF haciendo llamadas duplicadas) –

1

Pruebe apagar FireBug si lo tiene habilitado.

+0

Pasé 3 horas tratando de encontrar la respuesta a esto. Gracias –

0

Normalmente, la razón por la que page_load se dispara dos veces es que tiene AutoEventWireup = true en ascx/aspx Y vincula el evento Load al método Page_Load explícitamente (en el código subyacente).

Pero entonces debería ver este comportamiento en todos los navegadores.

3

Soy consciente de lo siguiente.

Si tiene control img con una cadena vacía asignada al atributo src. Puede olvidarse de asignar imageurl o querer asignar imageurl en el código subyacente en función de alguna condición y esa condición nunca se ejecuta y termina siendo una cadena vacía asignada al atributo src cuando ASP.Net procesa la página.

Si tiene un string vacío asignado al atributo href al enlace html para stylsheet.

Si tiene el atributo src vacío establecido en el script.

para obtener más información, consulte este artículo. http://patelshailesh.com/index.php/page_load-event-fires-twice-with-firefox-only

2

Tuve este problema también ... en mi caso firebug estaba causando la llamada extra.

0

Etiqueta de anclaje con href vacío, es decir, href="" es también un problema. Use href="#" dondequiera que no se requiera URL en una etiqueta de anclaje.

+0

En otra página he incrustado la etiqueta Object con src vacío atributo, es decir, src = "". Esto también es un problema. Así que puedo concluir que cualquier referencia de url vacía, ya sea src, url, href etc. son los culpables :) – anand

2

Nos encontramos con un problema similar donde violinista mostró que una de nuestras páginas carga dos veces. Esto solo sucedió en Firefox y Chrome.La solución fue cambiar:

background-image:url(''); 

a

background-image:none; 
1

tuve este problema también. Descubrí que la barra de herramientas antivirus de AVG en Firefox causa otro golpe en esa página y tuve 2 visitas por actualización.

Simplemente vaya a Herramientas> Complementos y deshabilite la barra de herramientas AVG si la tiene. De lo contrario, puede ser causado por otra extensión como una agregada por antivirus u otro software.

Buena suerte

Cuestiones relacionadas