好的,首先是一些背景:我有一个页面显示任何所选项目的点击次数(或视图)。在每个页面加载时调用的计数器程序,即
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
表现良好这变得非常令人沮丧。
答案 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="#"
。