Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Увеличение производительности 
:(
    Опции темы
Alx
Дата 31.3.2005, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



мне вот тут захотелось игру сделать - точки...

я нарисовал поле и уже нереально тормозит всё... чё делать?

http://alx.com.ru/portfolio/scripts/php/doz/doz.php

вот код:

Код

<?
function printArea($x,$y)
{for($i=0;$i<$y;$i++)
{echo "<tr height='10'>\r\n";
for($j=0;$j<$x;$j++)
{echo "<td width='10' id='{$i}_{$j}' class='area_node'>&nbsp;</td>\r\n";
}
echo "</tr>\r\n";
}
}
?>
<html>
<head>
<title>The DOZ! :: online PHP game</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta name="autor" content="Alx, Александр Зинчук">
<meta name="programming" content="Alx, Александр Зинчук">
<style>
body {overflow:auto;margin:0px;}
.area_node {border:1px solid #cccccc;font-size:1px;background:white;}
</style>
<script language="JavaScript">
<!--//
document.onmouseover = select;
document.onmouseout = deselect;

function select()
{var obj = window.event.srcElement;
if (obj.className == "area_node")
{obj.style.background = "#99ccff";
}
}
function deselect()
{var obj = window.event.srcElement;
if (obj.className == "area_node")
{obj.style.background = "#ffffff";
}
}
//-->
</script>
</head>
<body>
<table cellspacing="0" cellpadding="0" border="0">
<?=printArea(90,59);?>
</table>
</body>
</html>


Это сообщение отредактировал(а) Alx - 31.3.2005, 17:58


--------------------
PM MAIL WWW ICQ   Вверх
Aliance
Дата 31.3.2005, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



А где собсна вопрос?

Под какой браузер расчитана эта игра?
Т.к. судя вот по этому
Код

{var obj = window.event.srcElement;

ИЕ только?!
PM MAIL WWW ICQ Skype   Вверх
Alx
Дата 31.3.2005, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



не, не я просто так для спеху сделал, потом кроссбраузерно переделаю... если получится, чтобы нормально работало..

да вопрос то вот он! ты же сам видишь, как всё тормозит... как можно сделать, чтобы всё это нормально работало?


--------------------
PM MAIL WWW ICQ   Вверх
Sardar
Дата 31.3.2005, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Alx ты там создал довольно не хилого размера таблицу, браузеру тяжко smile

Выход: сделать ячейки span'ами положив в div с стилем white-space: nowrap. Огромное количество спанов бродилка должна схавать...

Если нужно еще быстрее, то рисуем клетки(скриншот возьми), сохраняем как цельную картинку. Размеры клеток одинаковые, либо расчитываем координаты мыши и по ним клетку, либо задаём map для картинки. Второе конечно лучше.

В результате всё будет летать smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Alx
Дата 31.3.2005, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



Sardar
а как я смогу сделать выделение клетки-то, если это будет картинка?


Цитата(Sardar @ 31.3.2005, 18:33)
Выход: сделать ячейки span'ами положив в div с стилем white-space: nowrap. Огромное количество спанов бродилка должна схавать...

не очень понял... можно поподробнее?

просто так:

Код

<div style="white-space:nowrap;">
<span class="area_node"></span><span class="area_node"></span><span class="area_node"></span><span class="area_node"></span><span class="area_node"></span>
<br>
<span class="area_node"></span><span class="area_node"></span><span class="area_node"></span><span class="area_node"></span><span class="area_node"></span>
<br>
<span class="area_node"></span><span class="area_node"></span><span class="area_node"></span><span class="area_node"></span><span class="area_node"></span>
<br>
<!---// и т.д. //-->
</div>

?

ой! smile

Это сообщение отредактировал(а) Alx - 31.3.2005, 19:29


--------------------
PM MAIL WWW ICQ   Вверх
Aliance
Дата 31.3.2005, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Цитата(Alx @ 31.3.2005, 19:04)
просто так:

2 div`а по середине лишние-то ))
PM MAIL WWW ICQ Skype   Вверх
Alx
Дата 31.3.2005, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



почему такие пробелы везде?
я сделал так:

Код

<div style="white-space:nowrap;cursor:default;word-spacing:0px;line-spacing:0px;letter-spacing:0px;">


ничё не помогло....(

Это сообщение отредактировал(а) Alx - 31.3.2005, 20:28

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  screen.png


--------------------
PM MAIL WWW ICQ   Вверх
Aliance
Дата 31.3.2005, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Код

<div style="....">
<span><IMG ...></span><span><IMG ...></span><span><IMG ...></span>
</div>

Так сделал?
PM MAIL WWW ICQ Skype   Вверх
Sardar
Дата 1.4.2005, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Alx в нужной позиции ты можешь создать и расположить div на абсолютной позиции, по виду как ячейка. Естественно точные координаты потребуются, если ячейки одного размера, то проблем нет.

Цитата(Alx @ 31.3.2005, 18:04)
просто так:

Да так, в стилях класса area_node пропиши padding: 0px; margin: 0px;, пробелы между тегами не ставь.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Alx
Дата 1.4.2005, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



Sardar
всё, пасиб, это было из-за \r\n

на самом деле я не могу, сказать, что летает, но это, конечно, значительно лучше, чем с таблицой. а что ты там говорил насчёт картинки? так на самом деле можно сделать? тогда объясни поподробнее! ;)

Это сообщение отредактировал(а) Alx - 1.4.2005, 00:26


--------------------
PM MAIL WWW ICQ   Вверх
Sardar
Дата 1.4.2005, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(Alx @ 31.3.2005, 23:26)
так на самом деле можно сделать? тогда объясни поподробнее! ;)

Видишь свою картинку с квадратиками, замерь в пикселях один квадратик(не забудь про пустые отступы(margin}). Теперь поставь эту большую картинку с полем на страницу, желательно в div с бекграундом этой картинки. Этому слою задай position: relative, теперь отсчёт координат предков будет с него. Также на этом слое ловим onmousemove.

Создаём курсор, это просто слой с размерами квадратика на твоём поле, задай ему необходимый цвет и бордер. Мы отлавливаем onmousemove на предке(слой с картинкой-полем), по координатам мыши расчитываем под каким квадратиком мы сейчас находимся, перемещаем туда наш курсор.

Если юзер кликает, то под координатами курсора мы создаём новый слой, такой же как курсор, но с заданным бекграундом. Этот новый слой остаётся когда мыша убежит.

На само деле сделать это просто smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Alx
Дата 1.4.2005, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



Sardar
короче вместо того, чтобы закрашивать ячейки, мы просто будем приклеивать поверх наших картинок новые div'ы? и то хочешь сказать, что это будет летать??)
Добавлено @ 11:16
особенно, когда этих слоёв будет 90*60 = 5400....


--------------------
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 1.4.2005, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 8
Всего: 71



А не проще всю таблицу с помощью JS генерить? По моему тормозит из за того, что таблица грузится долго.
Добавлено @ 11:24
300 кБ - это не хило. ИМХО.
PM MAIL   Вверх
Alx
Дата 1.4.2005, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ajaxy
****


Профиль
Группа: Комодератор
Сообщений: 2903
Регистрация: 26.11.2003
Где: Cutopia

Репутация: 10
Всего: 78



Perchilla
а какая разница - PHP или JavaScript будет генерить?


--------------------
PM MAIL WWW ICQ   Вверх
S.A.P.
Дата 1.4.2005, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: 8
Всего: 71



Alx разница в том, что в случае с JS грузиться только маленький скрипт, а в случае с PHP - вся толстая таблица весом в 300 кило.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1028 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.