функция слиипа?)
function crt_t(){ var x = 100; var y = 50; var s = '<table width="'+x+'px" border="0" cellspacing="0" cellpadding="0" bgcolor="#3333FF" height="'+y+'px" id="main_tb">'; s += '</table>'; document.getElementById('dd').innerHTML = s; s = ''; for (var j = 1; j <= y; j++) { document.getElementById('main_tb').innerHTML += '<tr id='+j+'></tr>'; for (var i = 1; i <= x; i++) { setTimeout("document.getElementById('j').innerHTML += '<td id='+i+'></td>'", '5') } } } Проблема не в том что оно работает, а в том что в цикле не работает сетТаймоут, я читал что это не слиип, но может мне скажите какую надо другую функцию для того чтобы код работал так как я хочу?)) |
Слипа в js нету. А сетТаймоут просто производит заданую операцию через указаное время.
А как вы хотите? |
проблема в том, что таблица будет создаваться долго если там более 200к ячеек, но проблема даже не во времени создания а в том что в этот момент браузер просто предложит сделать откладку приложение или же сильно залагает)) но я хотел сделать чтобы была небольшая задержка при создании таблицы, так будет создаваться без лагов, и постепенно, можно будет ещё линию загрузки вставить, и тогда будет как в играх, когда текстуры, объекты и музыка загружаться постепенно в игру с линией загрузки, так и я хотел создать, чтобы при создании не лагало, от я и решил сделать через задержку..) но как я вижу в ЯС её нету, а жалко..)
|
Если бы в JS была задержка, браузер бы точно также зависал при ней. Поэтому в JS есть отложенное выполнение.
|
Почему нету? Лаги возникают по большей части из-за долгих циклов. И кстати 5 миллисекунд бессмысленно:)
Посмотрите сколько мс выполняется ваша функция и ставьте чуть больше. |
Цитата:
а вот если бы ты воспользовался слипом, которого нету, браузер предложил бы завершить твой скрипт |
много вопросов))) приду отвечу)))
|
Цитата:
Цитата:
Я проверял,я создавал в 144к говорю, ужас долго!!:) дам если бы браузер захотел завершать было бы плохо..( короче как вижу выхода нету, прийдёться что-то другое придумать как делать)) А ещё хотел спросить, какой метод для Math. чтобы отделять дробную часть, то есть всё что после точки? |
для рисования надо использовать специализированные средства, а не табицы с пиксельными ячейками
|
Slawaq,
да что ж вы заладили-то с рисованием в таблице? Вы бы сначала вёрстку поизучали, и поняли бы, что необязательно городить таблицу для таких вещей. Вот здесь когда-то жила библиотека рисования на странице дивами. Можете поискать упоминания в интернетах. |
Я тоже когда-то делал рисование на странице, тоже думал о таблицах, после первого запуска понял, что это просто даже глупо:) Зачем городить, если можно всё дивами закрашивать. Получилось намного быстрее и качественнее. Нет смысла делать ещё одну пиксельную таблицу, если по сути она итак есть.
Kolyaj, Ссылка не работает. |
Цитата:
Цитата:
|
Kolyaj,
:blink: я совсем ослеп или читать разучился. |
дам,я убедился в одном большом минусе)) это то что ведь даже если всего лишь 400 на 200 размер, всё равно лагает страница.. так что после этого ясно что это плохо.. так как интерпритатор у браузеров и сам браузер не готовы чтобы в страницах находились таблицы по 100к ячеек.. эх..)) теперь даже нечем заняться) приедаться возвращаться книгу по ЯС учить..)
блин даже не чего делать теперь)) проект надо новый придумать)) |
Slawaq,
Реализуй с помощью дивов. |
ой ну это эе ещё тяжелей)) там размещение их трудней) от стенки до стенки)) но потом может попытаюсь сейчас нету времени уже почти)) пойду что-ли к экзаменам готовиться))
|
Slawaq,
:blink: Чего там трудней? |
Вложений: 1
Вот файл библиотеки без демок и без документации нашёлся в компе. Можете покопать.
|
Цитата:
function _mkDiv(x, y, w, h) { this.htm += '<div style="position:absolute;'+ 'left:' + x + 'px;'+ 'top:' + y + 'px;'+ 'width:' + w + 'px;'+ 'height:' + h + 'px;'+ 'clip:rect(0,'+w+'px,'+h+'px,0);'+ 'background-color:' + this.color + (!jg_moz? ';overflow:hidden' : '')+ ';"><\/div>'; } function _mkDivIe(x, y, w, h) { this.htm += '%%'+this.color+';'+x+';'+y+';'+w+';'+h+';'; } Ну от там я там посмотрел одним глазком и нашел, наверно это там и основное, и делается тогда с помощью циклов... но это уже не так интересно, хотя я попробую сделать на этом, только позже)) |
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Slawaq,
ну вы ещё придумали абсолютным позиционированием эти несчастные дивы фигачить... Как бы есть такое CSS-свойство float, с помощью которого можно располагать блочные элементы типа дивов в строчку - так и код будет проще, и нагрузка на браузер меньше. |
Цитата:
сейчас почитаем что такое флоат)) спасибо за правильное направление) |
посмотрел)) что-то на обтекания не хочу надеяться, лучше буду всё-таки на точные размеры от краев))) но если кто-то имеет лучше решение, пишите буду рад попробовать))
|
а что писать? Непонятно, что ты там за штуку делаешь
p.s. ходят слухи, что чтобы разобраться с версткой, надо читать Маниакальный веблог |
Цитата:
а штуку такую..)) короче как движок для апликейшенов)) смысл рисовать и делать функции объектам, чтобы было очень просто создавать свои аппликейшены, как например разные игры создаются на некоторых движках) например ГМ8(Гейм Мейкер) http://ru.wikipedia.org/wiki/Game_Maker или же упростить создания апликешенов до уровня Флеша) |
почитай про canvas, svg, vml тогда. Только ты б попроще задачу себе выбрал. Ну хотя бы напиши пару аппликейшнов, а потом уже движок для них ;)
|
Цитата:
function crt_ar(w,h){ document.body.innerHTML += '<div id="area" style="background-color:#333;margin-left:100px;margin-top:100px;height:'+h+'px;width:'+w+'px;"></div>' for(i=1; i<=h; i++){ for(u = 1; u <=w; u++){ document.getElementById('area').innerHTML += '<div style="background-color:#FC0;height:1px;width:1px;float:left;" id="'+i+';'+u+'"></div>'; } } } |
Slawaq,
тебе следует оторвать руки, и пришить к плечам. хочешь делать через жопу все -- делай. только вот других не доставай, и не показывай нам этот ужас. |
Часовой пояс GMT +3, время: 16:04. |