Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   сделать таблицу. (https://javascript.ru/forum/misc/35565-sdelat-tablicu.html)

danik.js 16.02.2013 17:03

Кстати, по теме: http://jsperf.com/table-creation/2

Deff 16.02.2013 17:04

Цитата:

Сообщение от danik.js
Deff, в ИЕ8 не работает вариант с innerHTML. В нем же вроде какие-то траблы с innerHTML у таблиц?

в ИЕ8 не работает вариант с innerHTML. Там да , там и таблы для ускорения нун делать по другому Вот забавная задачка => http://javascript.ru/forum/events/30...tml#post194863

danik.js 16.02.2013 17:14

Поправил тест, чтоб в лисе работал: http://jsperf.com/table-creation/3

рони, твой вариант медленней, как ни странно. Хотя в ие он работает быстрее. Кстати вариант с innerHTML не работает даже в IE9, так что он вообще не приемлем.

Deff 16.02.2013 17:21

Цитата:

Сообщение от danik.js
Хотя в ие он работает быстрее. Кстати вариант с innerHTML не работает

Просто он не правильный , ща поправлю

Deff 16.02.2013 17:38

<!DOCTYPE html>
<body>
<script>

var strTabl;
var div=document.createElement('div');
function createTable() {
    strTabl +="<table border=1><tbody>\n";
    for (var k = 0; k < 4; k++) {
        strTabl+= "\n<tr>\n";
        for (var m = 0; m < 5; m++) {
         strTabl+= "<td" + (k == m ? " style=color:red" : "") + ">"+"строка " +k+"; яч "+m+"</td>";
        }  strTabl+=  "\n</tr>\n";
    }
    strTabl+= "\n</tbody></table>";
}

function run() {
    var tstart = new Date();
    strTabl = '';
    for (var i = 0; i < 1000; i++) {
        createTable();
    } //alert(strTabl)
    div.innerHTML = strTabl;
    document.body.appendChild(div);
    alert(new Date() - tstart);
}
</script>
<button onclick="run()">Запуск</button>
</body>

Покороче (Ибо долго в ИЕ)
<!DOCTYPE html>
<body>
<script>

var strTabl;
var div=document.createElement('div');
function createTable() {
    strTabl +="<table border=1><tbody>\n";
    for (var k = 0; k < 4; k++) {
        strTabl+= "\n<tr>\n";
        for (var m = 0; m < 5; m++) {
         strTabl+= "<td" + (k == m ? " style=color:red" : "") + ">"+"строка " +k+"; яч "+m+"</td>";
        }  strTabl+=  "\n</tr>\n";
    }
    strTabl+= "\n</tbody></table>";
}

function run() {
    var tstart = new Date();
    strTabl = '';
    for (var i = 0; i < 100; i++) {
        createTable();
    } //alert(strTabl)
    div.innerHTML = strTabl;
    document.body.appendChild(div);
    alert(new Date() - tstart);
}
</script>
<button onclick="run()">Запуск</button>
</body>

dima*** 17.02.2013 11:26

Почему-то так не работает?:(
strTabl+= "<td" + (k == m ? " style=color:red" : "") + ">"+rew(k,m)+"</td>";

var strTabl="<table border=1><tbody>\n";
	    for (k = 0; k < u.length; k++) {
	        strTabl+= "\n<tr>\n";
	        for (m = 0; m < u.length; m++) {
				//strTabl+= "<td>"+rew(k,m)+"</td>";
	      strTabl+= "<td" + (k == m ? " style=color:red" : "") + ">"+rew(k,m)+"</td>";
		   }  
			strTabl+=  "\n</tr>\n";
	    }
	        strTabl+= "\n</tbody></table>";
document.write	(strTabl);

Deff 17.02.2013 11:30

strTabl+= "<td" + (k == m ? " bgcolor=red" : "") + ">"+rew(k,m)+"</td>";

dima*** 17.02.2013 11:48

Deff-спасибо!Заработало!:)


Часовой пояс GMT +3, время: 17:09.