2011-02-05 2 views
0

UpdatePanel 내에 유효하지 않은 html 코드가있을 때 Internet Explorer가 매우 느리게 작동합니다. 흥미로운 점 : 부분적인 포스트 백이되기 전에 추한 html이 삭제되면 (jQuery : $ ('# Content'). empty()) IE는 매우 빨리 실행되고 "A script ..."메시지가 표시되지 않습니다.ASP.NET UpdatePanel은 "Internet Explorer에서이 페이지의 스크립트로 인해 Internet Explorer가 느리게 실행되는 중 ..."이 발생합니다.

예제에는 두 개의 버튼이 있습니다. 첫 번째 (비동기)는 간단한 부분 포스트 백을 수행하고 설명 된 문제를 발생시킵니다. 두 번째 것 (비동기와 함께)은 못생긴 html로 div를 지우고 아무런 문제없이 부분적인 포스트 백을 실행합니다!

해결책은 iframe을 사용하여 추한 html을 iframe에로드하는 것일 수 있습니다. 나는 그러한 행동에 대한 설명에 더 관심이있다.

예 ASPX 마크 업 : 뒤에

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="LongRunningJavascript._Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <asp:ScriptManager runat="server" ID="ScriptManager1"> 
     <Scripts> 
      <asp:ScriptReference Path="~/Scripts/jquery-1.4.1.min.js" /> 
     </Scripts> 
    </asp:ScriptManager> 
    <div> 
     <script type="text/javascript"> 
      function Remove() { 
       $('#Content').empty(); 
      } 
     </script> 
     <asp:UpdatePanel runat="server" ID="UpdatePanel1" ChildrenAsTriggers="true"> 
      <ContentTemplate> 
       <asp:Button runat="server" ID="AsyncButton" Text="Async" OnClick="AsyncButton_Click"/> 
       <asp:Button runat="server" ID="AsyncWithClearButton" Text="Async with clear" OnClick="AsyncButton_Click" OnClientClick="Remove();" /> 
       <div id="Content"> 
        <style> <!-- v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} --> </style> <style> <!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0;} @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4;} @font-face {font-family:Tahoma; panose-1:2 11 6 4 3 5 4 4 2 4;} @font-face {font-family:Verdana; panose-1:2 11 6 4 3 5 4 4 2 4;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm; margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times New Xxxxx","serif";} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {mso-style-priority:99; color:purple; text-decoration:underline;} p.MsoAcetate, li.MsoAcetate, div.MsoAcetate {mso-style-priority:99; mso-style-link:"Text bubliny Char"; margin:0cm; margin-bottom:.0001pt; font-size:8.0pt; font-family:"Tahoma","sans-serif";} span.StylE-mailovZprvy19 {mso-style-type:personal-reply; font-family:"Calibri","sans-serif"; color:#1F497D;} span.TextbublinyChar {mso-style-name:"Text bubliny Char"; mso-style-priority:99; mso-style-link:"Text bubliny"; font-family:"Tahoma","sans-serif";} .MsoChpDefault {mso-style-type:export-only; font-size:10.0pt;} @page WordSection1 {size:612.0pt 792.0pt; margin:70.85pt 70.85pt 70.85pt 70.85pt;} div.WordSection1 {page:WordSection1;} --> </style> <div class="WordSection1">  <p class="MsoNormal"><span style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'">  <o:p>&nbsp;</o:p>  <p class="MsoNormal"><span style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'">Xxxx xx </span><span style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: Wingdings">J</span><span style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'">  <o:p></o:p>   <p class="MsoNormal"><span style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'">   <o:p>&nbsp;</o:p>   <p class="MsoNormal"><span style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'">Xxxxx   <o:p></o:p>    <p class="MsoNormal"><span style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'">    <o:p>&nbsp;</o:p>    <p class="MsoNormal"><b><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'">From:</span></b><span style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"> [email protected] <br />    <b>Sent:</b> Tuesday, February 01, 2011 4:06 PM<br />    <b>To:</b> XXXXX Xxxxx<br />    <b>Subject:</b> test Akce multimediální přehrávače.    <o:p></o:p></span></p>    <p class="MsoNormal">    <o:p>&nbsp;</o:p> </?xml:namespace>    <p class="MsoNormal" style="MARGIN-BOTTOM: 12pt"><br />    <br />    ___________________________________________________________________________<br />    Od: [email protected]<br />    Přijato: 31.01.2011 01:20:44<br />    Komu: [email protected]<br />    Předmět: Akce multimediální přehrávače.    <o:p></o:p></p>    <p class="MsoNormal"><i><span style="FONT-SIZE: 24pt; COLOR: navy"><img id="_x0000_i1097" height="32" src="cid:avecom_7new1.JPG" width="32" /><em><span style="TEXT-DECORATION: underline">doporučuje...</span></em></span></i>    <o:p></o:p></p>    <div>    <div>     <div>     <div>     <p class="MsoNormal">&nbsp;     <o:p></o:p></p></div>     <div>     <p class="MsoNormal">Neumí Vaą televizor přehrávat přímo z&nbsp;flashdisku nebo externího HDD ???     <o:p></o:p></p></div>     <div>     <p class="MsoNormal">Připravili jsme pro Vás multimediální přehrávače, díky kterým si budete moci uľít Vaąe oblíben&eacute; filmy, hudbu a fotografie přímo na Vaąí TV, monitor (s podporou HDMI a DVI)&nbsp;     <o:p></o:p></p></div>     <div>     <p class="MsoNormal">Jednoduch&eacute; připojování umoľňuje proměnit USB flashdisky, externí HDD a pamě»ov&eacute; karty na skutečná multimediální úloľiątě.&nbsp;<b><span style="FONT-SIZE: 11.5pt; COLOR: black">      <o:p></o:p>      <div>      <div class="MsoNormal" style="TEXT-ALIGN: center" align="center"><b><span style="FONT-SIZE: 11.5pt; COLOR: black"> <hr align="center" width="100%" size="2" />      </span></b></div></div>      <div>      <div>      <div>       <div>       <div>       <div>       <div>        <div>        <div>        <div>        <div>         <p class="MsoNormal"><b><span style="FONT-SIZE: 11.5pt; COLOR: fuchsia">GENIUS Media Player 200, HDMI, přehrávání hudby, videa, fotek z pamě»ových karet, externích HDD.         <o:p></o:p></span></b></p></div></div>        <div>        <div>         <div>         <div>         <div>         <div>          <div>          <p class="MsoNormal"><b><span style="FONT-SIZE: 11.5pt; COLOR: red"><img id="_x0000_i1099" height="32" src="cid:37158a.jpg" width="32" /></span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: fuchsia">          <o:p></o:p>           <div>           <p class="MsoNormal"><b><span style="FONT-SIZE: 11.5pt; COLOR: red">Cena:&nbsp;999,00Kč bez DPH </span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: blue">(1 199,00Kč s DPH)</span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: fuchsia">           <o:p></o:p>            <div>            <p class="MsoNormal"><b><span style="FONT-SIZE: 11.5pt; COLOR: fuchsia">&nbsp;            <o:p></o:p>             <div>             <p class="MsoNormal"><b><span style="FONT-SIZE: 11.5pt; COLOR: black">Kompaktní přehrávač, který si poradí se spousty multimediálními formáty. Podporuje video soubory ve formátech DVD disků, pokročilý MPEG-4 formát (H.264), oblíben&eacute; komprese DivX a XviD a rovněľ i formáty Real Media v rozliąení aľ 1024 x 576 bodů. Z hudebních souborů jsou to pak např. populární MP3 a WMA. V neposlední řadě přehrávač dovolí i prohlíľení obrazářů a fotografií ve formátech BMP, JPEG a PNG. Nechybí podpora textových souborů a několik formátů titulek. Ke sv&eacute;mu televizoru přehrávač připojíte pomocí HDMI nebo komponentního výstupu. V rozhraní potěąí USB vstup pro připojení externích datových úloľią» a slot na pamě»ov&eacute; karty typu MS/SC/MMC. Přehrávač je dodáván s dálkovým ovladačem.<br />             <br />             </span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: blue">Podporovan&eacute; formáty:<br />             Video: </span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: black">RM/RMVB, MPEG 1/2 (DAT, VOB, MOV), MPEG4 (AVI, DIVX , XVID), </span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: blue">Audio: </span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: black">MP3, WMA, AAC, AC3, WAV, </span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: blue">Foto: </span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: black">BMP, JPEG, PNG, </span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: blue">Text: </span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: black">TXT, SRT, SUB, SSA, ASS, SMI<br />             </span></b><strong><span style="FONT-SIZE: 11.5pt; COLOR: blue">Rozhraní: </span></strong><b><span style="FONT-SIZE: 11.5pt; COLOR: black">1x HDMI výstup, 1x komponentní výstup (Y, Pr, Pb), 1x kompozitní A/V výstup (RCA konektory), 1x USB vstup, 1x slot na pamě»ov&eacute; karty MS/SD/MMC<br />             </span></b><strong><span style="FONT-SIZE: 11.5pt; COLOR: blue">Rozměry: </span></strong><b><span style="FONT-SIZE: 11.5pt; COLOR: black">27 x 35 x 7 cm (V x &copy; x H)<br />             </span></b><strong><span style="FONT-SIZE: 11.5pt; COLOR: blue">Hmotnost: </span></strong><b><span style="FONT-SIZE: 11.5pt; COLOR: black">1,3 kg<br />             </span></b><strong><span style="FONT-SIZE: 11.5pt; COLOR: blue">Dodávan&eacute; přísluąenství: </span></strong><b><span style="FONT-SIZE: 11.5pt; COLOR: black">Dálkový ovladač</span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: fuchsia">             <o:p></o:p>              <div>              <div>              <p class="MsoNormal"><b><span style="COLOR: black; TEXT-DECORATION: underline">Kód zboľí:</span><span style="COLOR: blue">&nbsp;37158</span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: black">&nbsp;               <o:p></o:p></span></b></p></div></div>              <div>              <div>              <div>              <p class="MsoNormal"><b><span style="COLOR: black">Moľnost objednání (po registraci)&nbsp;a podrobný popis&nbsp;</span><span style="COLOR: blue; TEXT-DECORATION: underline"><a href="http://www.avekom.cz/product/37158/2/genius-media-player-200-hdmi-prehravani-hudby-videa-fotek-z-pametovych-karet-externich-hdd">zde</a></span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: black">               <o:p></o:p>               <div>               <div>                <div>                <div>                <div>                <div>                 <div class="MsoNormal" style="TEXT-ALIGN: center" align="center"><b><span style="FONT-SIZE: 11.5pt; COLOR: black"> <hr align="center" width="100%" size="2" />                 </span></b></div>                 <div>                 <p class="MsoNormal"><b><span style="FONT-SIZE: 11.5pt; COLOR: fuchsia">ASUS O!PLAY MINI multimedialni prehravac FullHD 1080p USB (MINI/1A/PAL/HDMI/AS mediaplayer)                 <o:p></o:p></span></b></p></div>                 <div>                 <p class="MsoNormal"><b><span style="FONT-SIZE: 11.5pt; COLOR: fuchsia"><img id="_x0000_i1101" height="32" src="cid:37632.jpg" width="32" border="0" />&nbsp;                 <o:p></o:p></span></b></p></div>                 <div>                 <div>                 <p class="MsoNormal"><b><span style="FONT-SIZE: 11.5pt; COLOR: red">Cena:&nbsp;1 299,00Kč bez DPH </span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: blue">(1 599,00Kč s DPH)</span></b><b><span style="FONT-SIZE: 11.5pt; COLOR: fuchsia">                  <o:p></o:p>                  <div>                  <p class="MsoNormal"><b><span style="FONT-SIZE: 11.5pt; COLOR: fuchsia">&nbsp;                   <o:p></o:p>                   <div>                   <p class="MsoNormal"><b><span style="FONT-SIZE: 11.5pt; COLOR: black">Výrazně zmenąená verze populárního multimediálního přehrávače Asus O!Play, která váľí pouze 175 g a vejde se vám do dlaní! I tak si přehrávač zachoval svou největąí přednost a podporuje Full HD rozliąení 1080p a 7.1kanálový zvuk Dolby TrueHD, který zaručuje audiovizuální záľitky srovnateln&eacute; s návątěvou kina. Podporuje celou řadu video formátů v populárních kodecích XviD, DivX i v pokročil&eacute;m H.264 jako např. AVI, VOB (pro DVD), MPG, MP4 či vysoce kvalitní MKV. Nem&eacute;ně početná podpora formátů se týká i audio souborů, kter&eacute; si budete moci přehrávat např. MP3, WAV, OGG, WMA nebo AAC. Nechybí moľnost prohlíľení digitálních fotografií JPEG, obrázků BMP, GIF a TIFF.<br />                   Jelikoľ přehrávač disponuje opravdu miniaturními rozměry, tak ho není moľn&eacute; osadit interním pevným diskem. Datový obsah vąak můľete přehrávači dodávat pomocí flashdisků, externích HDD anebo pamě»ových karet několika druhů, díky přednímu USB 2.0 portu respektive vestavěn&eacute; čtečce karet. Propojení s televizorem obstará HDMI výstup ve verzi 1.3 nebo komponentní a kompozitní výstup. Optický digitální audio výstup dobře poslouľí např. k posílání digitálního signálu do vaąeho receiveru. Přehrávač je dodáván s dálkovým ovladačem.<br />                   <br /> 
       </div> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
    </div> 
    </form> 
</body> 
</html> 

코드 :

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace LongRunningJavascript 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
     } 

     protected void AsyncButton_Click(object sender, EventArgs e) 
     { 
     } 
    } 
} 

는 IE6과 IE8, ASP.NET 3.5, IIS7.5에서 테스트 (통합).

답변

1

이 배치 될 것이다 당신이 updatepanel에서 스크립트를 초기화했을 수도 있기 때문에 그것은, JQuery와는 상당히 더 많은 물건을하고 MS

function Sys$WebForms$PageRequestManager$_updatePanel(updatePanelElement, rendering) { 
     for (var updatePanelID in this._scriptDisposes) { 
      if (this._elementContains(updatePanelElement, document.getElementById(updatePanelID))) { 
       var disposeScripts = this._scriptDisposes[updatePanelID]; 
       for (var i = 0, l = disposeScripts.length; i < l; i++) { 
        eval(disposeScripts[i]); 
       } 
       delete this._scriptDisposes[updatePanelID]; 
      } 
     } 
     Sys.Application.disposeElement(updatePanelElement, true); 
     updatePanelElement.innerHTML = rendering; 
    } 

에 의해 명확한 코드입니다. 그 후에 innerHTML을 설정하는 것이 가장 좋은 방법은 아니므로 조금 느립니다.

당신이 물건을 취소 jQuery를 사용하는 경우, 당신이 그것을에로드 된 스크립트가있을 수 있습니다, 그들은

당신은 그 코드를 찾아 키우면 경우 생성 확인할 수 있습니다 (파괴)에 배치되지 않습니다 이 속도가 느린 이유는 무엇입니까?

+0

모든 문제의 근원은 Sys.Application.disposeElement (updatePanelElement, true)입니다. (ASP.NET 3.5에서는 this._destroyTree (updatePanelElement)를 볼 수 있지만 관련없는 세부 정보입니다). Btw. 그것은 ASP.NET 4.0에서 잘 돌아갑니다. 고맙습니다. –

0

같은 상황이 발생했습니다. 우리가했던 몇 가지가 있습니다

    우리가 작은 파일이되도록 JS을 휴식, 그리고 많은 다른 것들을 하나도 거대한 JS
  • 확인 서버 캐시는
  • 올바르게 구성 프로파일 된되어 있는지 확인
  • JS (Firebug, IE 개발자 도구를 사용하여 매우 느리게 실행되고 최적화 된 코드 조각을 식별 할 수 있음)

코드를 최적화 할 수없는 경우 더러운 트릭이 있습니다. 클라이언트에서 코드를 실행하는 경우에도 웹 서버에 대한 호출 살아있는 상태로 유지하는 것은 웹 서비스를 전혀하지 않습니다. 브라우저는 새로운 요청이라고 생각하고 타이머를 다시 시작합니다. 나는이 옵션을 제공하는 것을 부끄럽게 여긴다. 올바른 방법은 아니지만 삶이 더 단순 해지고 사용자가 기다릴 수 있다면 프로파일 링과 최적화에 많은 시간을 절약 할 수있다.

관련 문제