IE7, standards mode, тормозня

hwh2010

IE7 тормозит с прорисовкой в standards mode (т.е. при прописанном doctype)
получалось ли у вас как-нибудь с этим бороться?
пример: эта страница тормозит. если убрать doctype — перестаёт
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>IE7 Standards/Quirks Mode Performance Test</title>
<style>
span{ color:red; font-style:italic; }
div.norm{ border:1px solid black; background-color: #EEEEEE; }
div.hi{ border:1px solid black; background-color: #FF9999; }
</style>
<script language="javascript" type="text/javascript">
function ShowHide(id) {
var obj = document.getElementById(id);
obj.style.display = obj.style.display != "block" ? "block" : "none";
}
</script>
</head>
<body style="background-color:white;">
<script language="javascript" type="text/javascript">
var iHeaders = 30;
var iTabRows = 300;
var sHtml = "<p>The following construct is repeated many times below:</p><blockquote><p>&lt;div onclick=&quot;<span>{show/hide some_id DIV}</span>&quot; onmouseover=&quot;<span>{set class name}</span>&quot; onmouseout=&quot;<span>{set class name}</span>&quot;&gt;Header&lt;/div&gt;<br>&lt;div id=&quot;some_id&quot; style=&quot;display:none&quot;&gt;<br><span>{Draw Long Table}</span><br>&lt;/div&gt;</p></blockquote>";
for(i = 0; i < iHeaders; i++) {
var sID = 'tab' + i;

var sHdrStyle = ' style="width:300pt; text-align:center; cursor: pointer;"';
var sHdrOnClick = ' onclick="ShowHide(\'' + sID + '\')"';
var sHdrOnMsOvr = ' onmouseover="this.className=\'hi\'"';
var sHdrOnMsOut = ' onmouseout="this.className=\'norm\'"';
var sHdr = '<div class=norm' + sHdrStyle + sHdrOnClick + sHdrOnMsOvr + sHdrOnMsOut + '>' + (i+1) + '. Header</div>';

var sBodyBgn = '<div id="' + sID + '" style="width:300pt; display:none;">';
var sBodyEnd = '</div>';

var sTable = '<table width="98%" border="1" cellspacing="0" cellpadding="0" align=center>';
for(r = 0; r < iTabRows; r++) {
var sTD = '<td>' + (i+1) + '. Some text</td>';
sTable += '<tr>' + sTD + sTD + sTD + sTD + '</tr>';
}
sTable += '</table>';

sHtml += sHdr + sBodyBgn + sTable + sBodyEnd;
}
document.write(sHtml);
</script>
<noscript>Please <span>Allow Blocked Content</span> or turn JavaScript <span>ON</span></noscript>
</body>
</html>

Andbar

Не заметил разницы ни на глаз, ни по графику CPU usage.
Приведённую хтмлку открывал из файла на харде.
Система - core duo T2400/2Gb/XPSP3Home/Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)

hwh2010

увеличь значения
var iHeaders = 30;
var iTabRows = 300;
вообще странно, у меня на работе на 3 компах тормозит, через некоторое время напишу конфигурации

Andbar

Заменил на 50 и 500.
Да, теперь, пожалуй, на графике заметно, что когда я тыкаю на заголовки, проц меньше загружается без doctype-а (раза в полтора, наверное). А если запускать сперва файл без doctype-а, потом приписывать doctype и обновлять, то подтормаживание при раскрытии становится заметным на глаз (наверное и в обратном порядке заметно, просто обычно ускорение труднее заметить чем замедление).

hwh2010

у меня даже если не тестить раскрытие, а просто мышкой бысторо провести снизу вверх, то без доктайпа успевает загореться около 10 строк, а с доктайпом 1-2.
Оставить комментарий
Имя или ник:
Комментарий: