Asp.net page_load函数加载两次..因此它影响我的页面性能。 有谁知道它加载两次的原因。Page_Load在ASP.NET页面中触发两次
不,不IAM调用页面加载函数的任何位置......
Asp.net page_load函数加载两次..因此它影响我的页面性能。 有谁知道它加载两次的原因。Page_Load在ASP.NET页面中触发两次
不,不IAM调用页面加载函数的任何位置......
这不是你叫的页面加载功能的两倍,也就是ASP.NET的工作方式。页面发布到自身,从而调用page_load函数,当页面上的任何服务器控件被触发(设置为回发)。
你需要做的是把一些检查的初始页面加载和后背部
if(!IsPostBack)
{
//Code when initial loading
}
else
{
// code when post back
}
MVC的人? )。 – 2011-01-24 18:55:29
哇我从10年前就记得这个! – 2012-07-18 11:37:23
请尝试制作在这个环节中提到的变化来区分。 http://social.msdn.microsoft.com/Forums/en/vbgeneral/thread/ccc75925-3460-497c-8471-fcebecd8d061
BTW我GOOGLE了Page_Load Being called twice
请在这里找到解决方案........
检查是否加载事件有处理程序的基类和子类 Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
把手MyBase.Load,Me.Load **
如果是只需从活动中删除Me.Load,现在检查您的页面。希望这可能会有用并解决您的问题。
刚刚遇到了这个问题,并认为我会张贴一个答案总结我发现,加上我的实际问题。
1. img tags with src="" or Image tags with ImageUrl="
2. Using AutoEventWireup="true" and adding a page handler
3. Having manually added the event handler (more common for C# than VB)
4. Handling both MyBase.Load and Me.Load
,最后我的问题....
我从一个类,包含一个网页加载处理,这从一个类继承了网页加载处理继承页。
Public Class C1
Inherits System.Web.UI.Page
Protected Overridable Sub PageLoad(ByVal sender As Object,
ByVal e As System.EventArgs) Handles Me.Load
End Sub
End Class
Public Class C2
Inherits C1
Protected Overrides Sub PageLoad(ByVal sender As Object,
ByVal e As System.EventArgs) Handles Me.Load
MyBase.PageLoad(sender, e)
End Sub
End Class
Public Class MyPage
Inherits C2
Protected Overrides Sub PageLoad(ByVal sender As Object,
ByVal e As System.EventArgs)
MyBase.PageLoad(sender, e)
End Sub
End Class
我进行了测试,如果你把一个把手上的方法,我的页面,它会得到击中3次...
我通过设置AutoEventWireup属性为FALSE,解决了我的问题。从.net 1.1迁移到.net 4.0时遇到此问题。不知何故,当我从旧版本复制文件时,VS2012将此属性重置为TRUE。
我有同样的问题。 这是因为TreeUode带有ImageUrl =“”。
一旦我发现下面的字符串中的一个项目:
<link rel="Shortcut Icon" href="#" type="image/x-icon" />
有人只是没有像他通常以“A HREF”一样。 但是,浏览器实际上会尝试在每次刷新时获取站点图标,因此它会从href参数向地址发送请求,即向同一页面发送请求。
所以,检查一下。
对我来说,我能得到这个多次调用各地通过PreRender事件,而不是
protected override void OnPreRender(EventArgs e)
这只是调用一次,即使在onload的和init的被称为万次。
我用Server.Transfer
取代了Response.Redirect
,因为它被认为是新的做事方式。此后,页面加载两次,Chrome中的“返回”按钮返回到上一页并立即返回到当前页面。我用Response.Redirect
替换了Server.Transfer
,一切恢复正常。 我也把这个答案在page loads twice due to js code。
对我来说这是一个空白的图像标签。
<img src="#" />
记住检查的IsPostBack值,如下所示:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
你可以把这个IF块中的断点,以验证您运行的Page_Load两次。 如果您看到Page_Load运行两次,并且每次都不是回发,那么请检查此页面的OnInit()方法。 确认你没有像下面那样连接Load处理程序。您通常会从早期版本的Visual Studio中迁移的代码中看到此代码。
this.Load += new System.EventHandler(this.Page_Load);
如果您发现它,请将其删除。这假设您在页面标记的顶部有以下内容。 AutoEventWireup =“true”
我有同样的问题和解决。
我检查了我的Global.ascx和我的重写规则。
当请求页面时,根据我对SEO标准的配置,URL的URL末尾没有“/”,重定向从“x.com/x”发生到“x.com/x/”。
所以任何工作都很好,而且你的内部链接应该在URL的末尾有“/”来避免多重负载。
页面对象在页面对象上调用OnLoad方法,然后对每个子控件递归执行相同的操作,直到加载页面和所有控件。单个控件的加载事件发生在页面的加载事件之后。
使用OnLoad事件方法来设置控件中的属性并建立数据库连接。
Reffer MSDN:enter link description here
对我来说这是通过去除
Handles Me.Load
和改变方法类似
Protected Overrides OnLoad(...)
对于我来说解决这个问题10月后出现了突然2017年Windows更新。我注意到,对于通过web.config中的Location元素可供匿名用户访问的页面,现在还需要授予对该页面引用的任何资产(例如图像,样式表等)的访问权限。下面的示例授予匿名访问权限登录页面和“图像”目录(又名文件夹):
<location path="login.aspx">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
<location path="images">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
更新:我发现Page_Load中的第二个原因被称为两次。在旧的旧版代码中,某些页面的.aspx.designer.cs文件包含的矛盾显然到目前为止尚未引起问题。我没有尝试修复,而是创建了新页面,从而消除了双重加载事件。
一个代码示例会很好......你是否想过这样一个事实,即可能有一个AJAX调用会在你的页面出现两次。或者,也许你正在重新定向和无限循环? – Rob 2011-01-24 18:48:32
请包含任何可帮助我们查看问题的代码。另外,它可能是一个__doPostBack调用页面代码中的某个地方。 – 2011-01-24 18:48:32
喜鲍勃和Doug, 感谢您的答复..我..检查没有AJAX调用和doPostBack在我的代码调用.. 但你俩有多少种方法可以在页面回发两次知道。 – Goutham 2011-01-24 19:05:37