Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Оптимизация скриптов (https://javascript.ru/forum/project/1430-optimizaciya-skriptov.html)

object 17.07.2008 11:52

Оптимизация скриптов
 
делаю свой сайт www.antiflash.ru в основном скрипте более 800 строчек кода, чувствую что все можно намного проще сделать и оптимизировать, может кто чего подскажет, буду благодарен.
Собираю сообщения о глюках.

Kolyaj 17.07.2008 12:00

Симпатично, но двигается резковато.

А оптимизировать можно всегда, ну или почти всегда :)

object 17.07.2008 12:37

Скролл двигается резко или что?
вот про оптимизацию поподробнее если можно

Kolyaj 17.07.2008 13:28

Цитата:

Сообщение от object
Скролл двигается резко или что?

Угу, скролл.

Цитата:

Сообщение от object
вот про оптимизацию поподробнее если можно

Это в коде надо копаться, а это лень. Вот если представите какой-нибудь участок конкретный, тогда можно будет посмотреть.

object 17.07.2008 23:54

у меня в коде плишком много переменных, слишком много ифов и функций, всякие крутые модули типа лайтбокса написаны гараздо красивее, вот кусок моего:
function work_scroll(next_pre){
	if(op_stop==1){
	for(q=0; q<work_big_total; ++q){
		loading_work="img/works/work_"+work_big[q]+"_big.jpg";
		if(this_work==loading_work){
			if(next_pre==1){
				loading_work="img/works/work_"+work_big[q-1]+"_big.jpg";
				loading_width=work_width[q-1];
				loading_height=work_height[q-1];
			}
			if(next_pre==0){
				loading_work="img/works/work_"+work_big[q+1]+"_big.jpg";
				loading_width=work_width[q+1];
				loading_height=work_height[q+1];
			}
			if(loading_work != "img/works/work_undefined_big.jpg"){
				hide_work();
				break;
			}
		}
	}
	}
}


еще из-за анимации я постоянно пользую setTimeout, который потом приходится удолять в отдельной функции, ктоме того он сильно серит проц, так что когда общитываются несколько фукций с использованием сетТаймаут, то начинаются дикие тупняки, если ли другое решение?

Kolyaj 18.07.2008 01:01

Ну как минимум код
if(next_pre==1){
  loading_work="img/works/work_"+work_big[q-1]+"_big.jpg";
  loading_width=work_width[q-1];
  loading_height=work_height[q-1];
} if(next_pre==0){
  loading_work="img/works/work_"+work_big[q+1]+"_big.jpg";
  loading_width=work_width[q+1];
  loading_height=work_height[q+1];
}
можно заменить на что-то вроде
var index = next_pre == 1 ? q - 1 : q + 1;
loading_work="img/works/work_"+work_big[index]+"_big.jpg";
loading_width=work_width[index];
loading_height=work_height[index];

object 20.07.2008 23:15

спасибо большое, то что нужно, можно еще объяснить в чем разница между структурами:
fun = {
fun.1={...}
fun.2={...}
}
и
function fun_1{...}
function fun_2{...}
?

Андрей Параничев 21.07.2008 00:40

Хеши это одна из форм записи объектов. Но правильно записывать вот так:
fun = {
    some: function() {...},
    thing: function() {...}
}

Тогда вы сможете вызывать эти методы таким способом: fun.some() и fun.thing(). Отличие от функций очевидное. Подробнее можете почитать в этой статье.

Kolyaj 21.07.2008 09:32

Цитата:

Сообщение от object
в чем разница между структурами:
fun = {
fun.1={...}
fun.2={...}
}
и
function fun_1{...}
function fun_2{...}
?

Первая вызывает parse error, вторая -- нет :)

object 21.07.2008 13:58

спасибо, то что нужно


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