2

AJAXコンテンツでJQueryUIタブを使用しています。

ロードされたデータは、最大100行10列のDataTables要素です。

FF、Chrome、Safari、Operaではすべて問題ありませんが、IE9ではロードされるテーブルが非常に遅くなります。

IE9で.load()メソッドを使用してDataTableを読み込もうとしましたが、問題ありませんが、JQueryUIタブを使用すると実際にはそうではありません。JQueryUI 1.8.22と1.9.1を試しましたが、動作は同じです。

誰かがすでにこのような問題に対処していますか?

編集

実際、この問題はDataTablesに限定されるものではなく、AJAXを介してタブに読み込まれる「大きな」コンテンツが原因です。さらに、ロードされたJSコード、スクロール、さらにはCSS:hoverは実際には反応しません

4

2 に答える 2

1

IEは、テーブルが非表示/非表示の場合、テーブルのレンダリングが特に遅くなります。これは文書化された問題です。最善の方法は次のとおりです。

$('#yourTabs').tabs({
    "select": function(ev, ui){
        if(ui.index == whateverIndexYourTableIsIn) {
            dtYourTable.fnAddData(yourData);
        }
    }
});

これは、テーブルが表示されたときにのみテーブル(データ)をレンダリングするため、IEではそれほど遅くなりません...ただし、この点でIEは他の新しいブラウザーよりも全体的に遅くなります。

IE「隠されたinnerHTMLの遅さ」に関する議論

http://datatables.net/forums/discussion/1389/x#Item_8

http://datatables.net/forums/discussion/11701/why-does-datatable-run-so-slow-in-ie89-etc../p1

于 2012-11-08T17:39:15.033 に答える
0

修正タブのコンテンツの高さを使用しました。理由がわかりません。これにより、IE(8および9)でのブラウザーのレンダリングが大幅に遅くなります。

この問題を修正するために、修正タブのコンテンツの高さをCSSプロパティに置き換え、height:90%修正テーブルの高さをに追加しましたdatatable sScrollY": "1000px // 90% of the tab content height。ウィンドウサイズに合わせて適切な値でresizeを再描画するために、ウィンドウイベントを設定しました。datatable

同じIEの問題に直面しているすべての人々を助けたいと思っています。

于 2012-12-25T08:23:44.443 に答える