2009-05-06 17 views
1

.Net 3.5を使用してascxページに更新パネルがあります。コールバックペインがDOMを更新した後にIEが更新されない

ユーザーがデータを入力し、コールバックを開始し、ajaxがDOMを更新します。

通常はすべてが大変です。たまにDOMが更新され、IEが表示をリフレッシュすることはありません。更新された領域全体が空白に見えます。

ユーザーがウィンドウのサイズ変更のようにリフレッシュをトリガーするような操作を行うと、データはすぐに画面に表示されますが、それまでは表示されません。

これはなぜですか?何が原因でしょうか?どのように修正することができますか?

+0

これはどのバージョンのIEに表示されていますか? –

+0

7と8.これは一貫して再現可能ではありません。半ダースのテスターがすべて8時間まっすぐになると、1日に1〜2回起こることがあります。 – 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で確認できます。コードの一部が無効な場合、あなたが意味していたことを理解していないためにブラウザを非難することはできません。

関連する問題