Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   функция слиипа?) (https://javascript.ru/forum/dom-window/9668-funkciya-sliipa.html)

Slawaq 31.05.2010 10:32

функция слиипа?)
 
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')
  }
}
}

Проблема не в том что оно работает, а в том что в цикле не работает сетТаймоут, я читал что это не слиип, но может мне скажите какую надо другую функцию для того чтобы код работал так как я хочу?))

Skipp 31.05.2010 11:49

Слипа в js нету. А сетТаймоут просто производит заданую операцию через указаное время.

А как вы хотите?

Slawaq 31.05.2010 12:05

проблема в том, что таблица будет создаваться долго если там более 200к ячеек, но проблема даже не во времени создания а в том что в этот момент браузер просто предложит сделать откладку приложение или же сильно залагает)) но я хотел сделать чтобы была небольшая задержка при создании таблицы, так будет создаваться без лагов, и постепенно, можно будет ещё линию загрузки вставить, и тогда будет как в играх, когда текстуры, объекты и музыка загружаться постепенно в игру с линией загрузки, так и я хотел создать, чтобы при создании не лагало, от я и решил сделать через задержку..) но как я вижу в ЯС её нету, а жалко..)

Kolyaj 31.05.2010 12:14

Если бы в JS была задержка, браузер бы точно также зависал при ней. Поэтому в JS есть отложенное выполнение.

Skipp 31.05.2010 12:16

Почему нету? Лаги возникают по большей части из-за долгих циклов. И кстати 5 миллисекунд бессмысленно:)
Посмотрите сколько мс выполняется ваша функция и ставьте чуть больше.

x-yuri 31.05.2010 12:20

Цитата:

Сообщение от Slawaq
проблема в том, что таблица будет создаваться долго если там более 200к ячеек, но проблема даже не во времени создания а в том что в этот момент браузер просто предложит сделать откладку приложение или же сильно залагает))

зачем такая большая таблица? Да и вообще, ты не проверил, а уже оптимизируешь? :stop:
а вот если бы ты воспользовался слипом, которого нету, браузер предложил бы завершить твой скрипт

Slawaq 31.05.2010 12:26

много вопросов))) приду отвечу)))

Slawaq 31.05.2010 14:56

Цитата:

Сообщение от Skipp (Сообщение 57182)
И кстати 5 миллисекунд бессмысленно:)
Посмотрите сколько мс выполняется ваша функция и ставьте чуть больше.

наоборот меньше надо)) 5к раз выполняется цикл а значит, 25к млс. или 25сек. При том что тут всего лишь 5к ячеек)))
Цитата:

Сообщение от x-yuri (Сообщение 57183)
зачем такая большая таблица?

ну это будет вообще долго рассказывать) но в крациях ячейка с размер пикселя будет, и тогда в этой таблице через ЯС можна будет рисовать)
Я проверял,я создавал в 144к говорю, ужас долго!!:)
дам если бы браузер захотел завершать было бы плохо..(
короче как вижу выхода нету, прийдёться что-то другое придумать как делать))
А ещё хотел спросить, какой метод для Math. чтобы отделять дробную часть, то есть всё что после точки?

Gvozd 31.05.2010 15:03

для рисования надо использовать специализированные средства, а не табицы с пиксельными ячейками

Kolyaj 31.05.2010 15:25

Slawaq,
да что ж вы заладили-то с рисованием в таблице? Вы бы сначала вёрстку поизучали, и поняли бы, что необязательно городить таблицу для таких вещей.

Вот здесь когда-то жила библиотека рисования на странице дивами. Можете поискать упоминания в интернетах.

Skipp 31.05.2010 15:47

Я тоже когда-то делал рисование на странице, тоже думал о таблицах, после первого запуска понял, что это просто даже глупо:) Зачем городить, если можно всё дивами закрашивать. Получилось намного быстрее и качественнее. Нет смысла делать ещё одну пиксельную таблицу, если по сути она итак есть.

Kolyaj,
Ссылка не работает.

Kolyaj 31.05.2010 15:58

Цитата:

Сообщение от Skipp
Ссылка не работает.

я и написал
Цитата:

Сообщение от Kolyaj
когда-то жила


Skipp 31.05.2010 16:02

Kolyaj,
:blink: я совсем ослеп или читать разучился.

Slawaq 31.05.2010 16:04

дам,я убедился в одном большом минусе)) это то что ведь даже если всего лишь 400 на 200 размер, всё равно лагает страница.. так что после этого ясно что это плохо.. так как интерпритатор у браузеров и сам браузер не готовы чтобы в страницах находились таблицы по 100к ячеек.. эх..)) теперь даже нечем заняться) приедаться возвращаться книгу по ЯС учить..)
блин даже не чего делать теперь)) проект надо новый придумать))

Skipp 31.05.2010 16:10

Slawaq,
Реализуй с помощью дивов.

Slawaq 31.05.2010 16:19

ой ну это эе ещё тяжелей)) там размещение их трудней) от стенки до стенки)) но потом может попытаюсь сейчас нету времени уже почти)) пойду что-ли к экзаменам готовиться))

Skipp 31.05.2010 16:22

Slawaq,
:blink: Чего там трудней?

Kolyaj 31.05.2010 16:25

Вложений: 1
Вот файл библиотеки без демок и без документации нашёлся в компе. Можете покопать.

Slawaq 31.05.2010 19:08

Цитата:

Сообщение от Skipp (Сообщение 57228)
Slawaq,
:blink: Чего там трудней?

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+';';
}

Ну от там я там посмотрел одним глазком и нашел, наверно это там и основное, и делается тогда с помощью циклов... но это уже не так интересно, хотя я попробую сделать на этом, только позже))

x-yuri 31.05.2010 22:54

Цитата:

Сообщение от Slawaq
дам,я убедился в одном большом минусе)) это то что ведь даже если всего лишь 400 на 200 размер, всё равно лагает страница.. так что после этого ясно что это плохо.. так как интерпритатор у браузеров и сам браузер не готовы чтобы в страницах находились таблицы по 100к ячеек.. эх..))

просто надо использовать инструменты по назначению ;)

Цитата:

Сообщение от Slawaq
теперь даже нечем заняться) приедаться возвращаться книгу по ЯС учить..)
блин даже не чего делать теперь)) проект надо новый придумать))

Цитата:

Сообщение от Slawaq
ой ну это эе ещё тяжелей))

так зато ж есть чем заняться...

Slawaq 31.05.2010 23:21

Цитата:

Сообщение от x-yuri (Сообщение 57282)
так зато ж есть чем заняться...

От сижу и думаю как делать)) наверное через margin буду их двигать)

Cr@ZyBoY 31.05.2010 23:27

Slawaq,
ну вы ещё придумали абсолютным позиционированием эти несчастные дивы фигачить...
Как бы есть такое CSS-свойство float, с помощью которого можно располагать блочные элементы типа дивов в строчку - так и код будет проще, и нагрузка на браузер меньше.

Slawaq 01.06.2010 00:40

Цитата:

Сообщение от x-yuri (Сообщение 57282)
float

? честно, никогда не встречал, я конечно ксс понимаю но не все параметры ещё знаю для чего))
сейчас почитаем что такое флоат))
спасибо за правильное направление)

Slawaq 01.06.2010 00:44

посмотрел)) что-то на обтекания не хочу надеяться, лучше буду всё-таки на точные размеры от краев))) но если кто-то имеет лучше решение, пишите буду рад попробовать))

x-yuri 01.06.2010 02:23

а что писать? Непонятно, что ты там за штуку делаешь

p.s. ходят слухи, что чтобы разобраться с версткой, надо читать Маниакальный веблог

Slawaq 01.06.2010 03:14

Цитата:

Сообщение от x-yuri (Сообщение 57313)
а что писать? Непонятно, что ты там за штуку делаешь

p.s. ходят слухи, что чтобы разобраться с версткой, надо читать Маниакальный веблог

О, как раз то что на мой уровень по ксс, пойду поднимать свои знания))
а штуку такую..)) короче как движок для апликейшенов)) смысл рисовать и делать функции объектам, чтобы было очень просто создавать свои аппликейшены, как например разные игры создаются на некоторых движках) например ГМ8(Гейм Мейкер) http://ru.wikipedia.org/wiki/Game_Maker
или же упростить создания апликешенов до уровня Флеша)

x-yuri 01.06.2010 05:46

почитай про canvas, svg, vml тогда. Только ты б попроще задачу себе выбрал. Ну хотя бы напиши пару аппликейшнов, а потом уже движок для них ;)

Slawaq 01.06.2010 06:17

Цитата:

Сообщение от x-yuri (Сообщение 57317)
почитай про canvas, svg, vml тогда. Только ты б попроще задачу себе выбрал. Ну хотя бы напиши пару аппликейшнов, а потом уже движок для них ;)

эх.. какой раз уже слишу про канвас)) и свг)) читал канвас функции не понравились, тем более когда у меня уже есть готовые свои функции линии и круга, я всё-таки как-то сделал в 5 часов ночи через ДИВ, но результат ещё хуже, лаги больше) ну от функция:
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>';
		
		}
}
}

Gvozd 01.06.2010 07:29

Slawaq,
тебе следует оторвать руки, и пришить к плечам.

хочешь делать через жопу все -- делай.
только вот других не доставай, и не показывай нам этот ужас.


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