我們有一個.NET 4.0 WebForms應用程序。一頁有一個包含一些HtmlButton控件的UpdatePanel。當服務器在.NET 4.0上運行時,這是正常工作的。使用IE10標準模式在UpdatePanel中單擊HtmlButton導致雙XMLHttpRequest回發
當服務器升級到4.5時,我們注意到單擊按鈕會掛起瀏覽器。微調器會顯示,用戶的會話基本鎖定,直到通話超時。
在瀏覽器的開發者工具(F12)的網絡選項卡,我們觀察到:
- IE10使用標準文件模式:兩個調用是對服務器進行。第一個沒有內容,結果是「(中止)」。提琴手報告內容長度不匹配。第二個電話在超時之前不會返回。
- IE10兼容查看,文檔模式IE7標準:只對服務器進行一次呼叫。一切皆好。
- IE10以任何其他模式(也包括IE9)將第一次中止和第二次掛起/待處理的服務器進行2次調用。
- Chrome:兩次調用服務器,但第二次成功。
對運行.Net 4.0的服務器執行相同的觀察顯示類似的雙重調用,但在第二個調用沒有掛起。
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Literal ID="myliteral" runat="server"></asp:Literal>
<button id="htmlbtn" runat="server" OnServerClick="htmlbtn_Click"></button>
</ContentTemplate>
</asp:UpdatePanel>
的ServerClick:
我用一個UpdatePanel中,文字和這樣的HtmlButton創建一個新的默認.NET 4.5 Web窗體應用程序重新此雙重調用行爲(除了掛起第二個呼叫)事件只是將當前時間放在文字中。
這重新創建了雙後行爲。我也嘗試使用其他類型的按鈕,如ImageButton,他們正常工作只發出一個單一的電話。
有人知道這裏發生了什麼嗎?有沒有什麼辦法可以避免使用HtmlButton的雙後?我假設這兩個電話與第二個電話掛斷有關,但這可能是一個錯誤的假設。
我有完全相同的問題,如果你還記得,請你詳細解釋一下你的答案嗎? ......發生了什麼樣的jQuery綁定? –
@ManuelNavarro我已經更新了答案,以提供更多信息。希望它有助於引導你朝着正確的方向前進。 –