Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / оптимизация JS / 25 сообщений из 28, страница 1 из 2
07.10.2012, 20:45:05
    #37987245
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
Здравствуйте, помогите оптимизировать функцию,
в частности array = [[],[],[],[],[],[],[],[],[],[]];
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
var interval = null;

function api(string, object) {
	array = [[],[],[],[],[],[],[],[],[],[]];

	$.post('/api.php', object, function(data){
		$.each(data, function(key) {
			array[0].push(key);
			$.each(this, function(key, value) {
				array[key+1].push(value);
			});
		});
	}, 'json');

	clearInterval(interval);

	interval = setInterval(function() {
		var result = '';
		for(i = 0; i < array.length; i++) {
			if(typeof array[i][0] != 'undefined') {
				if(i == 0) {
					result += '<td>.</td>';
				}
				result += '<td>'+array[i][0]+'</td>';
				array[i].splice(0, 1);
			}
		}
		if(result) {
			$(string).append('<tr>'+result+'</tr>');
		}
	}, 100);

	$(string).html('');
}
...
Рейтинг: 0 / 0
07.10.2012, 22:35:58
    #37987306
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
...
Рейтинг: 0 / 0
07.10.2012, 22:42:39
    #37987308
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
Паганель, не плохо, только неясно как это мне поможет...
...
Рейтинг: 0 / 0
07.10.2012, 22:55:41
    #37987313
Ифреймов Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
nauseous,

покажите пример данных, которые получаете аяксом
а то как-то так тяжко

и еще не понял, зачем там интервал
...
Рейтинг: 0 / 0
07.10.2012, 22:59:14
    #37987316
Ифреймов Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
nauseousПаганель, не плохо, только неясно как это мне поможет...
Рекомендуется отказаться от захардкоженого в javascript html-a в пользу templates
это тоже вид оптимизации
...
Рейтинг: 0 / 0
07.10.2012, 23:23:28
    #37987333
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
Ифреймов Вася,

вот пример ответа
0 ["№:", "URL:", "Title:"]
1 ["5.", " http://example.ru/", "title1"]
2 ["5.", " http://example.ru/", "title2"]
3 ["5.", " http://example.ru/", "title3"]
4 ["5.", " http://example.ru/", "title4"]
5 ["5.", " http://example.ru/", "title5"]
...

интервал нужен что-бы плавно отобразить результат за результатом,
так как ответ дает сразу сотню результатов
...
Рейтинг: 0 / 0
07.10.2012, 23:25:46
    #37987336
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
Ифреймов ВасяnauseousПаганель, не плохо, только неясно как это мне поможет...
Рекомендуется отказаться от захардкоженого в javascript html-a в пользу templates
это тоже вид оптимизации
раньше не юзал такую модель - надо будет попробовать...
...
Рейтинг: 0 / 0
08.10.2012, 00:15:08
    #37987368
Ифреймов Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
nauseous0 ["№:", "URL:", "Title:"]
1 ["5.", " http://example.ru/", "title1"]
2 ["5.", " http://example.ru/", "title2"]
3 ["5.", " http://example.ru/", "title3"]
4 ["5.", " http://example.ru/", "title4"]
5 ["5.", " http://example.ru/", "title5"]
...




Зачем вообще это адский массив заполняется, если данные уже упорядочены?


авторинтервал нужен что-бы плавно отобразить результат за результатом,
так как ответ дает сразу сотню результатов

Может лучше сгенерировать html не показывая его, а затем плавно отобразить появление всех результатов, а не долбить интервалом каждые 100 млс?
...
Рейтинг: 0 / 0
08.10.2012, 02:50:16
    #37987396
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
Ифреймов ВасяЗачем вообще это адский массив заполняется, если данные уже упорядочены?
данные нужно показать с задержкой, строка за строкой.. daley не помог
...
Рейтинг: 0 / 0
08.10.2012, 03:16:49
    #37987397
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
если отказаться от интервалов, то вот рабочий вариант
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function api(string, object) {
	$.post('/api.php', object, function(data){
		var result = '';
		$.each(data, function() {
			result += '<tr>';
			$.each(this, function(key, value) {
				result += '<td>'+value+'</td>';
			});
			result += '</tr>';
		});
		
		$(string).append(result);
	}, 'json');
}


но в нем мне не нравится то что он получает таблицу на сотню - две результатов,
и выбрасывает их одним махом..
мне хотелось бы показать последовательно.. как можно это сделать?
...
Рейтинг: 0 / 0
08.10.2012, 09:58:34
    #37987546
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
Лучше этого не делать. Мне бы не понравилось, что какой-то скрипт задерживает данные. Может мне сразу в конец надо?
...
Рейтинг: 0 / 0
08.10.2012, 10:10:48
    #37987567
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
AntonariyЛучше этого не делать. Мне бы не понравилось, что какой-то скрипт задерживает данные. Может мне сразу в конец надо?это уже другой вопрос
...
Рейтинг: 0 / 0
08.10.2012, 10:23:17
    #37987602
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
nauseousAntonariyЛучше этого не делать. Мне бы не понравилось, что какой-то скрипт задерживает данные. Может мне сразу в конец надо?это уже другой вопросЭто называется победа дизайна над здравым смыслом.
...
Рейтинг: 0 / 0
08.10.2012, 11:37:22
    #37987777
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
Antonariynauseousпропущено...
это уже другой вопросЭто называется победа дизайна над здравым смыслом.
все дело в том что пока визуализируется одна часть данных, в это момент подгружается другая
...
Рейтинг: 0 / 0
08.10.2012, 11:39:27
    #37987783
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
nauseousпока визуализируется одна часть данных, в это момент подгружается другаяа почему бы серверу не выдатьnauseousтаблицу на сотню - две результатовза раз?
...
Рейтинг: 0 / 0
08.10.2012, 12:26:21
    #37987913
Ифреймов Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
nauseous,

разбейте вашу задачу на две отдельные части: получение данных и их отображение
сейчас эти задачи перемешаны, и это мешает вам правильно подойти к задаче
одна часть программы - получает данные, и отдает их некоему визуализатору - который и будет содержать
логику плавного, непрерывного и любого, другого показа
и все у вас получится
...
Рейтинг: 0 / 0
08.10.2012, 13:14:04
    #37988061
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
Ифреймов Васяnauseous,

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

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function api(string, object) {
	$.post('/api.php', object, function(data){
		var result = '';
		$.each(data, function() {
			result += '<tr>';
			$.each(this, function(key, value) {
				result += '<td>'+value+'</td>';
			});
			result += '</tr>';
		});
		
		$(string).append(result);
	}, 'json');
}


задача одна, сделать отображение данных:

0 ["№:", "URL:", "Title:"]
1 ["5.", " http://example.ru/", "title1"]
2 ["5.", " http://example.ru/", "title2"]
3 ["5.", " http://example.ru/", "title3"]
4 ["5.", " http://example.ru/", "title4"]
5 ["5.", " http://example.ru/", "title5"]
...

с задержкой 1/10 сек. на одну строку...
изначально я использовал интервал для решения, но в этом решении была проблема с оптимизацией массивов..
предложил оригинальный код и вывод для обсуждения..

Вы начинаете рассуждать на тему визуализации, шаблонизации - это к задаче отношения не имеет,
так как она определена не мною, и рассуждать на тему хорошо или плохо я не в праве.
...
Рейтинг: 0 / 0
08.10.2012, 13:19:06
    #37988071
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
nauseous[/spoiler]задача одна, сделать отображение данных:
+

0 ["№:", "URL:", "Title:"]
1 ["5.", " http://example.ru/", "title1"]
2 ["5.", " http://example.ru/", "title2"]
3 ["5.", " http://example.ru/", "title3"]
4 ["5.", " http://example.ru/", "title4"]
5 ["5.", " http://example.ru/", "title5"]
...
с задержкой 1/10 сек. на одну строку...я не знаю, как реализовать эту задачу лучше чем это сделали Вы
...
Рейтинг: 0 / 0
08.10.2012, 13:21:01
    #37988080
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
Паганель, просто я предположил что можно как-то delay сделать.. по ходу нет
...
Рейтинг: 0 / 0
08.10.2012, 13:32:29
    #37988112
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
nauseousкак-то delay сделать.. http://jsfiddle.net/jbPf7/
...
Рейтинг: 0 / 0
08.10.2012, 13:42:25
    #37988146
Ифреймов Вася
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
nauseous,


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

То-есть вам сказали - свали все в кучу, и посмотри, что будет?
Такое вот указание сверху?

Я предложил разделить задачу на две логические части
Показывать строку в 100 млс?
Нет проблем

Отказываетесь от заполнения массива.
Получаете все сто строк в функции api и передаете их в функцию скажем showData
В функции showData вы реализуете логику плавного показа строк(через тот-же setInterval)
А вместо генерации хтмл через хардкод используете шаблоны

Такие вот рекомендации по оптимизации
По моему все предельно ясно
...
Рейтинг: 0 / 0
08.10.2012, 13:54:34
    #37988163
оптимизация JS
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
$().ready(function() {
				var response = [
					["№:", "URL:", "Title:"],
					["5.", "http://example.ru/", "title1"],
					["5.", "http://example.ru/", "title2"],
					["5.", "http://example.ru/", "title3"],
					["5.", "http://example.ru/", "title4"],
					["5.", "http://example.ru/", "title5"]
				];			
								
				$.template(
					"responseTemplate", 
					"<p><span>{{= $data[0]}}</span><span>{{= $data[2]}}</span><span>{{= $data[1]}}</span></p>"
				);

				$.tmpl("responseTemplate", response).appendTo("#result");					
			})
...
Рейтинг: 0 / 0
08.10.2012, 14:44:50
    #37988302
оптимизация JS
было интересно... спс! ;)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
<!DOCTYPE html>
<html>
    <head>
		<title></title>
		<meta charset="UTF-8" />
		<script src="http://code.jquery.com/jquery-latest.min.js"></script>
		<script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script>
		<script>
			$().ready(function() {
				var response = [
					["№:", "URL:", "Title:"],
					["5.", "http://example.ru/", "title1"],
					["5.", "http://example.ru/", "title2"],
					["5.", "http://example.ru/", "title3"],
					["5.", "http://example.ru/", "title4"],
					["5.", "http://example.ru/", "title5"]
				], i = 0;
								
				$("#result").empty();
				
				setInterval(function () {
					$("#responseTemplate").tmpl([response[i]]).appendTo("#result")
					i++;
				}, 1000);									
			})
		</script>
		<script id="responseTemplate" type="text/x-jquery-tmpl">
			<tr><td>{{= $data[0]}}</td><td>{{= $data[1]}}</td><td>{{= $data[2]}}</td></tr>
		</script>
	</head>
        <body>
		<table id="result">
		</table>
		</div>
    </body>
</html>
...
Рейтинг: 0 / 0
08.10.2012, 15:18:46
    #37988406
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
друг паганеля, спасибо огромное, но смысла в http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js
...
Рейтинг: 0 / 0
08.10.2012, 15:19:21
    #37988408
nauseous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
оптимизация JS
зачем юзать библиотеку если вопрос 2 строками решается?
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / оптимизация JS / 25 сообщений из 28, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]