2009-05-06 2 views
1

.Net 3.5를 사용하여 ascx 페이지에 업데이트 패널이 있습니다.callpback pane이 DOM을 업데이트 한 후 IE가 표시되지 않음

사용자가 데이터를 입력하고 콜백을 시작하며 ajax가 DOM을 업데이트합니다.

일반적으로 모두 늠름한 dory입니다. 때때로 DOM이 업데이트되고 IE는 화면을 새로 고치지 않습니다. 업데이트 된 전체 영역이 비어있는 것 같습니다.

사용자가 창 크기를 조정하는 것처럼 새로 고침을 트리거하는 작업을 수행하면 데이터가 화면에 즉시 나타나지만 그때까지는 나타나지 않습니다.

왜 이런가요? 무엇이 그것을 일으킬 수 있습니까? 어떻게 고칠 수 있습니까?

+0

표시되는 IE 버전은 무엇입니까? –

+0

7과 8.이 값은 일관성있게 재현되지 않습니다. 반 테스 테스터가 모두 8 시간 연속으로 진행되면 하루에 한두 번씩 발생할 수 있습니다. – diadem

+0

레코드 용 ... 두 렌더링 모드를 시도하고 div와 span을 사용하여 서로 바꿨습니다. – diadem

답변

2

당신은 실제 브라우저 : 정말

로 전환하여 '수정'을, 당신은 내가 in this page 발견 트릭에 따라 문제를 해결 할 수있을 수 있습니다.

var t = document.createTextNode('temp text'); 
element.appendChild(t); // Not sure if this is any element 
         // or one inside your new DOM nodes. 
setTimeout(function() { t.parentNode.removeChild(t); }, 0); 

저자는 말한다 해당 페이지에서 : 당신이 당신의 새로운 콘텐츠으로 DOM을 업데이트 한 후 빈 노드를 생성하고 로컬 을 삭제하기 만하면 무엇을 기본적으로

,

내 "수정"을 사용하더라도 사용자가 창에서 의 마우스 커서를 움직여 다시 들어가면 작동합니다.

하지만 그 정도면 충분하다고 생각합니다 ... IE가 처리 시간을 절약하기 위해 브라우저 창에 어떤 활동이없는 한 새로 고침을 트리거하지 않을 수도 있습니다.

IE에서 오래전부터 알려진 버그입니다. 아무 데서라도 게시 할 수는 없지만. 사실 오페라조차도 때때로 그 버그를 가지고 있습니다.

또한 트릭을 사용하여 해결하더라도 모든 HTML이 유효한지 확인하십시오. http://validator.w3.org에서 확인할 수 있습니다. 코드의 일부가 유효하지 않은 경우 사용자가 의미하는 바를 이해하지 못하여 브라우저를 비난 할 수 없습니다.

관련 문제