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