powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / оптимизация JS
25 сообщений из 28, страница 1 из 2
оптимизация JS
    #37987245
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, помогите оптимизировать функцию,
в частности 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
оптимизация JS
    #37987306
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
оптимизация JS
    #37987308
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель, не плохо, только неясно как это мне поможет...
...
Рейтинг: 0 / 0
оптимизация JS
    #37987313
Фотография Ифреймов Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseous,

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

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

вот пример ответа
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
оптимизация JS
    #37987336
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ифреймов ВасяnauseousПаганель, не плохо, только неясно как это мне поможет...
Рекомендуется отказаться от захардкоженого в javascript html-a в пользу templates
это тоже вид оптимизации
раньше не юзал такую модель - надо будет попробовать...
...
Рейтинг: 0 / 0
оптимизация JS
    #37987368
Фотография Ифреймов Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
оптимизация JS
    #37987396
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ифреймов ВасяЗачем вообще это адский массив заполняется, если данные уже упорядочены?
данные нужно показать с задержкой, строка за строкой.. daley не помог
...
Рейтинг: 0 / 0
оптимизация JS
    #37987397
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 / 0
оптимизация JS
    #37987546
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше этого не делать. Мне бы не понравилось, что какой-то скрипт задерживает данные. Может мне сразу в конец надо?
...
Рейтинг: 0 / 0
оптимизация JS
    #37987567
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyЛучше этого не делать. Мне бы не понравилось, что какой-то скрипт задерживает данные. Может мне сразу в конец надо?это уже другой вопрос
...
Рейтинг: 0 / 0
оптимизация JS
    #37987602
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseousAntonariyЛучше этого не делать. Мне бы не понравилось, что какой-то скрипт задерживает данные. Может мне сразу в конец надо?это уже другой вопросЭто называется победа дизайна над здравым смыслом.
...
Рейтинг: 0 / 0
оптимизация JS
    #37987777
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariynauseousпропущено...
это уже другой вопросЭто называется победа дизайна над здравым смыслом.
все дело в том что пока визуализируется одна часть данных, в это момент подгружается другая
...
Рейтинг: 0 / 0
оптимизация JS
    #37987783
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseousпока визуализируется одна часть данных, в это момент подгружается другаяа почему бы серверу не выдатьnauseousтаблицу на сотню - две результатовза раз?
...
Рейтинг: 0 / 0
оптимизация JS
    #37987913
Фотография Ифреймов Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseous,

разбейте вашу задачу на две отдельные части: получение данных и их отображение
сейчас эти задачи перемешаны, и это мешает вам правильно подойти к задаче
одна часть программы - получает данные, и отдает их некоему визуализатору - который и будет содержать
логику плавного, непрерывного и любого, другого показа
и все у вас получится
...
Рейтинг: 0 / 0
оптимизация JS
    #37988061
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ифреймов Вася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
оптимизация JS
    #37988071
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
оптимизация JS
    #37988080
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель, просто я предположил что можно как-то delay сделать.. по ходу нет
...
Рейтинг: 0 / 0
оптимизация JS
    #37988112
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseousкак-то delay сделать.. http://jsfiddle.net/jbPf7/
...
Рейтинг: 0 / 0
оптимизация JS
    #37988146
Фотография Ифреймов Вася
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauseous,


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

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

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

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

Такие вот рекомендации по оптимизации
По моему все предельно ясно
...
Рейтинг: 0 / 0
оптимизация JS
    #37988163
Код: 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
оптимизация JS
    #37988302
было интересно... спс! ;)
Код: 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
оптимизация JS
    #37988406
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
друг паганеля, спасибо огромное, но смысла в http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js
...
Рейтинг: 0 / 0
оптимизация JS
    #37988408
nauseous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем юзать библиотеку если вопрос 2 строками решается?
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / оптимизация JS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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