页面加载在Firefox上触发两次

时间:2010-01-28 09:52:17

标签: asp.net 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);
    }
}

问题:我的期望是每个页面加载时计数器会增加1,但我的datalist和formview上的计数器总是落后并且步进2,即

而不是1, 2, 3, 4,它是0, 2 , 4, 6

似乎页面加载是两次触发。后来我发现只有在使用Mozilla Firefox时才会发生这种情况。该页面与其他浏览器如IE

表现良好

这变得非常令人沮丧。

9 个答案:

答案 0 :(得分:24)

如果页面上的<asp:Image><img runat="server">没有指定src属性,我已经看过Page_Load两次。

值得一看。

答案 1 :(得分:3)

我知道以下事情。

如果你有img控件,空字符串分配给src属性。 您可能忘记分配imageurl或者想要基于某些条件在后面的代码中分配imageurl并且该条件永远不会被执行,并且在ASP.Net呈现页面时最终被分配给src属性的空字符串。

如果为href属性指定了空字符串,则为样式表的html链接。

如果您将空src属性设置为script。

有关更多信息,请参阅此文章。 http://patelshailesh.com/index.php/page_load-event-fires-twice-with-firefox-only

答案 2 :(得分:2)

我也有这个问题..在我的情况下,firebug引起了额外的电话。

答案 3 :(得分:2)

我们遇到了类似的问题,其中fiddler显示我们的一个页面加载了两次。这只发生在Firefox和Chrome中。解决方案是改变:

background-image:url('');

background-image:none;

答案 4 :(得分:1)

如果启用了FireBug,请尝试关闭它。

答案 5 :(得分:1)

我也有这个问题。我发现firefox上的AVG防病毒工具栏再次点击该页面,每次刷新我有2次点击。

如果有的话,只需转到工具&gt;附加组件并禁用AVG工具栏。否则,它可能是由另一个扩展引起的,例如由防病毒软件或其他软件添加的扩展名。

祝你好运

答案 6 :(得分:0)

最可能的原因是你正在调用该程序两次。

答案 7 :(得分:0)

通常,page_load被触发两次的原因是你在ascx / aspx中有AutoEventWireup = true并且你明确地将Load事件绑定到Page_Load方法(在代码隐藏中)。

但是你应该在所有浏览器中看到这种行为。

答案 8 :(得分:0)

具有空href的锚标记,即href=""也是一个问题。在锚标记中不需要URL的地方使用href="#"