Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.10.2010, 22:29
Аватар для Slawaq
Профессор
Отправить личное сообщение для Slawaq Посмотреть профиль Найти все сообщения от Slawaq
 
Регистрация: 19.05.2010
Сообщений: 187

небольшой скриптик к вам на экран))
от вечерком этим написал скрипт, в ифрейм закину вам, посмотрите пожалуйста)) он вообще будет вставляться в игру, ну для счёта, как в игровых автоматах, только реалистичности не хватает, кажется проблема в том что числа спадают и поднимаются по функции у=х, пробывал ставить чёта другое, код вообще не работал, хоть округление было(или скорость поменять...?)..
но ни про это, вообще мне надо что бы если кто может мне помог уменьшить количество кода, и стоит ради уменьшения кода делать и добавлять объекты через DOM?
просто мне надо так сказать минимизировать код или сделать оптимизацию, короче я не знаю как это называется правильно, из-за этого не буду разбрасываться фразами, или ещё куда страшней заходить в гугл)) ну смысл в том, кода меньше, а работоспособность не потеряна))
ну а исходники посмотрите уже не ленясь хоть через ctrl+u)) зайдя по src ниже))
<iframe src ='http://slawaq.hmsite.net/guestbook/test.htm'></iframe>

Последний раз редактировалось Slawaq, 15.10.2010 в 22:35.
Ответить с цитированием
  #2 (permalink)  
Старый 15.10.2010, 23:12
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

поставил 0, начало бесконечно моргать, поставил -200, глюкать стало интересней. тестировать не пробовали? зачем отнимаете чужое время.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #3 (permalink)  
Старый 16.10.2010, 05:59
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Стало чета интересно, накодил вот че:
<!DOCTYPE html>
<html>
<head>
	<title>Цифровой дисплей</title>
	<style type="text/css">

		.digits li{
			display: inline-block;
			position: relative;
			width: 62px;
			height: 92px;
			background: #000;
		}
		.digits li span{
			position: absolute;
			display: block;
			background: #f00;
			border: 1px solid #900;
			opacity: 0.3;
			  -moz-border-radius: 2px;
		}
		/* horisontal segments */
		.digits li .segment-1,
		.digits li .segment-4,
		.digits li .segment-7{
			height: 2px;
			width: 44px;
			left: 8px;
		}
		.digits li .segment-1{
			top: 4px;
		}
		.digits li .segment-4{
			top: 84px;
		}
		.digits li .segment-7{
			top: 44px;
		}

		/* vertical segments */
		.digits li .segment-2,
		.digits li .segment-3,
		.digits li .segment-5,
		.digits li .segment-6{
			height: 30px;
			width: 2px;
		}
		.digits li .segment-2{
			top: 10px;
			left: 54px;
		}
		.digits li .segment-3{
			top: 50px;
			left: 54px;
		}
		.digits li .segment-5{
			left: 4px;
			top: 50px;
		}
		.digits li .segment-6{
			top: 10px;
			left: 4px;
		}

		.d0 .segment-1,
		.d0 .segment-2,
		.d0 .segment-3,
		.d0 .segment-4,
		.d0 .segment-5,
		.d0 .segment-6{
			opacity: 1;
		}

		.d1 .segment-2,
		.d1 .segment-3{
			opacity: 1;
		}

		.d2 .segment-1,
		.d2 .segment-2,
		.d2 .segment-4,
		.d2 .segment-5,
		.d2 .segment-7{
			opacity: 1;
		}

		.d3 .segment-1,
		.d3 .segment-2,
		.d3 .segment-3,
		.d3 .segment-4,
		.d3 .segment-7{
			opacity: 1;
		}

		.d4 .segment-2,
		.d4 .segment-3,
		.d4 .segment-6,
		.d4 .segment-7{
			opacity: 1;
		}

		.d5 .segment-1,
		.d5 .segment-3,
		.d5 .segment-4,
		.d5 .segment-6,
		.d5 .segment-7{
			opacity: 1;
		}

		.d6 .segment-1,
		.d6 .segment-3,
		.d6 .segment-4,
		.d6 .segment-5,
		.d6 .segment-6,
		.d6 .segment-7{
			opacity: 1;
		}

		.d7 .segment-1,
		.d7 .segment-2,
		.d7 .segment-3{
			opacity: 1;
		}

		.d8 .segment-1,
		.d8 .segment-2,
		.d8 .segment-3,
		.d8 .segment-4,
		.d8 .segment-5,
		.d8 .segment-6,
		.d8 .segment-7,
		.d8 .segment-8{
			opacity: 1;
		}

		.d9 .segment-1,
		.d9 .segment-2,
		.d9 .segment-3,
		.d9 .segment-4,
		.d9 .segment-6,
		.d9 .segment-7{
			opacity: 1;
		}
	</style>
</head>
<body>
	<ul id="display" class="digits">
		<li>
			<span class="segment-1"></span>
			<span class="segment-2"></span>
			<span class="segment-3"></span>
			<span class="segment-4"></span>
			<span class="segment-5"></span>
			<span class="segment-6"></span>
			<span class="segment-7"></span>
			<span class="segment-8"></span>
		</li>
		<li>
			<span class="segment-1"></span>
			<span class="segment-2"></span>
			<span class="segment-3"></span>
			<span class="segment-4"></span>
			<span class="segment-5"></span>
			<span class="segment-6"></span>
			<span class="segment-7"></span>
			<span class="segment-8"></span>
		</li>
		<li>
			<span class="segment-1"></span>
			<span class="segment-2"></span>
			<span class="segment-3"></span>
			<span class="segment-4"></span>
			<span class="segment-5"></span>
			<span class="segment-6"></span>
			<span class="segment-7"></span>
			<span class="segment-8"></span>
		</li>
	</ul>
	<button onclick="counter.countTo(this.nextSibling.value)">Считать до:</button><input type="text" />
	<script type="text/javascript">
		// конструктор дисплея
		function Display(id)
		{
			// dom-элементы представляющие собой цифры
			this.digits = document.getElementById(id).getElementsByTagName('li');
			// разрядность нашего дисплея
			this.width = this.digits.length;
			// метод для отображения дисплеем нужного числа
			this.set = function(number){
				number = number.toFixed();
				for (var i=number.length; i <this.width; i++){
					number = '0' + number;
				}
				var i = this.width;
				while (i--)
				{
					this.digits[i].className = 'd' + number[i];
				}
			}
		}
		// конструктор счетчика
		function Counter()
		{
			this.value 		=  0;
			this.step 		=  1;
			this.interval	= 100;
			this.countTo = function(to){
				clearInterval(this.intHandler);
				if (this.value == to) return true;
				var self = this;
				var multiplier = (to - this.value < 0) ? -1 : 1;
				this.intHandler = setInterval(function(){
					self.stepBy(multiplier*self.step);
					if (to == self.value) clearInterval(self.intHandler);
				}, this.interval);
			}
			this.stepBy = function(by){
				this.value += by;
				if (this.onStep) {
					this.onStep.call(this, this.value);
				}
			}
		}

		var display = new Display('display');
		display.set(0);
		var counter = new Counter;
		counter.onStep = function () {
			display.set(this.value);
		}
	</script>
</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 16.10.2010, 09:01
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Slawaq,
поставил -00 скрипт похоже со мной разговаривать начал, думаю просит его отдебажить
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #5 (permalink)  
Старый 16.10.2010, 15:31
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от danik.js
Стало чета интересно, накодил вот че:
А зачем столько лишнего css/html кода?

ul, li span в вашем случае все эти элементы можно создать 10-й строчками кода, а то и меньше

Последний раз редактировалось monolithed, 16.10.2010 в 15:35.
Ответить с цитированием
  #6 (permalink)  
Старый 16.10.2010, 17:36
Аватар для Slawaq
Профессор
Отправить личное сообщение для Slawaq Посмотреть профиль Найти все сообщения от Slawaq
 
Регистрация: 19.05.2010
Сообщений: 187

я только посмотрел коменты, и хочу сказать что это просто будет счётчик, который вводит не человек, а АЯКС!!(а ПХП который я напишу не допустит минусов на счету игроков, я надеюсь))) и сам смысл в том что эта вся байда идёть на клиентсайд, и я хотел найти помощи в уменьшении передаваемых кБ, просто это всего лишь один элемент с ещё таких, наверное нескольких, что будут лететь на клиентсайд. И да как на счёт реалистичности??))
Ответить с цитированием
  #7 (permalink)  
Старый 16.10.2010, 22:01
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от monolithed
А зачем столько лишнего css/html кода?

ul, li span в вашем случае все эти элементы можно создать 10-й строчками кода, а то и меньше
Да, не спорю, li span можно и нужно сгенерировать. А сами цыфры на css реализовал, чтоб не усложнять js, и "отделить представление от контроллера" Можно тупо задать картинки каждому классу - будет очень коротко. Или обходить сегменты на js и скрывать/показывать их.
Насчет нелинейности. Думаю Это делается постоянной установкой разных таймаутов для функции. Величина таймаута зависит нелинейно от какойнибудь величины, меняющейся в пределах от 0 .. 1.
Чесно говоря могу только предположить. Тоже интересен вопрос. можно глянуть на всякие animation в jquery/mootoos
За партянку извиняюсь - вродебы вписывал код в [ spoiler ]
Ответить с цитированием
  #8 (permalink)  
Старый 16.10.2010, 22:21
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от Slawaq Посмотреть сообщение
я только посмотрел коменты, и хочу сказать что это просто будет счётчик, который вводит не человек, а АЯКС!!(а ПХП который я напишу не допустит минусов на счету игроков, я надеюсь))) и сам смысл в том что эта вся байда идёть на клиентсайд, и я хотел найти помощи в уменьшении передаваемых кБ, просто это всего лишь один элемент с ещё таких, наверное нескольких, что будут лететь на клиентсайд. И да как на счёт реалистичности??))
т.к. эта тема дибильная по определению, то начнут с описания своей работы, пару летней давности. Писал я как-то сервис, не то чтобы большой, чел на 100тыс., больше со страны не предполагалось. Ну там файловую систему предусмотрел, аватары, каждому по папке, на сервера все побил, субдомены, защита от DoS, система ошибок, проверка запросов, сессии, хешкоды, мыло каждому, личка ну и т.д. В общем обычный такой сервис.

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

Теперь я сплю спокойно и знаю, что заказчик не подкрадется ко мне сзади и не потребует чего-нибудь, взамен хреново отдебаженого/написанного кода, как у Вас. Я показал вам три ошибки, не хотите исправлять, зачем показывали скрипт, покрасоваться?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #9 (permalink)  
Старый 16.10.2010, 23:52
Аватар для Slawaq
Профессор
Отправить личное сообщение для Slawaq Посмотреть профиль Найти все сообщения от Slawaq
 
Регистрация: 19.05.2010
Сообщений: 187

блин, Gozar, я не проф который с нуля сможет сделать свой сервис с нормальной защитой, и хорошей работоспособностью, но это для ВК, а ВК мне сам всё это пришлёт, а мне надо лишь, так сказать, более-менее обрабатывать всё это, ну и делать некоторые операции с счетами, от к операциям, как их более правильней и защищённей делать я буду уже с другой точки зрения смотреть, со всеми наворотами про атаки хакеров)) а это лишь интерфейс, который, так сказать, не будет иметь влияния на роботу системы, он будет, показателем)))

но за терпение перед моей по определению тупой темы, я всё же поставлю плюс за выдержку))
p.s.: нет не смогу поставить плюс, нельзя, слишком много уже раньше отплюсовал)
Ответить с цитированием
  #10 (permalink)  
Старый 17.10.2010, 01:29
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Slawaq
но это для ВК, а ВК мне сам всё это пришлёт
аха.
а проверку на тот случай если ВК изменит формат своего вывода, или еще что-то.
если такое произойдет, то пользователь будет получать непонятное поведение скрипта вместо понятного "скрипт временно не работает по причине изменения API вконтакте"
и кстати подделать хакеру ответ вконтактак для вашегно сркипта гораздо проще чем вам кажется.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
GRID во весь экран burashka ExtJS 6 09.09.2010 13:05