Таблица на 1,5 млн ячеек... как сделать?
Здравствуйте.
Помогите пожалуйста. Есть необходимость разместить на странице таблицу 1200х1200 ячеек. Естественно для её создания я использую скрипт. Вот он:
$(document).ready(function() {
for(var r = 0; r < 1201; r++){
$('table#coords').append('<tr>');
for(var d = 0; d < 1200; d++){$('table#coords tr:nth-child('+r+')').append('<td></td>');}
$('table#coords').append('</tr>');
}
})
На меньшем количестве ячеек скрипт работает нормально. Но когда ставлю нужные 1200х1200 браузер начинает задыхаться, даже на локалхосте. Предлагает несколько раз покинуть страницу. В итоге так ничего и не показывает. Вопрос такой, может я прошу слишком многого? И браузеры просто не в силах справиться с такой задачей? Хотя вроде ж в 21м веке живём. Или может я что-то не правильно делаю? Если у вас есть решение, буду очень признателен за помощь. P.S. Браузеры пробовал разные (все популярные) - результат один и тот же (т.е. никакой). |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
td{
border: 1px solid red;
width: 2px;
height: 2px;
}
</style>
</head>
<body>
<script>
var table = document.createElement('table');
str='';
for(var i = 0; i<1200; i++) str+='<tr>'+('<td>'.repeat(1200));
table.innerHTML = str;
document.body.append(table);
</script>
</body>
</html>
хром секунд 8-9 ff за 3 сек грузит, памяти метров 800 съедает |
imhateb,
у таких таблиц обычно отображают видимую часть,и попробуйте сначала создать, а потом выводить (append текст таблицы только 1 раз). и 5 строка не нужна! |
Цитата:
И по поводу отображения видимой части - всё усложняется тем, что таблица эта должна быть повёрнута на 45 градусов как на рисунке. И я вообще теряюсь как это реализовать. ![]() Помимо прочего я хотел бы чтобы при наведении/клике можно было выводить координаты соответствующей ячейки. Стало быть для этого в код создания таблицы надо добавить момент с вставкой этих координат в ячейки... Но код предложенный профессором J0hnik мне не совсем понятен, и боюсь, я не смогу его допилить самостоятельно.(((( |
imhateb,
слайдер 9 кадров, три на три, вы видите только центральный, идём влево, справа удаляем три блока, слева рисуем три блока, вот и весь алгоритм. |
:-? Рони, я обещаю, что я попытаюсь в этом разобраться. Всё-таки азарт присутствует. Я уже сутки не спал и не ел. Хочется победить эту задачу и со спокойной совестью идти отдыхать. Так что я буду дальше ковыряться.
Но блин, если я всё-таки не смогу, могу ли я рассчитывать на то, что Вы поможете? Вы уже не раз меня выручали :) |
| Часовой пояс GMT +3, время: 07:00. |