Сергей Шпак
596 повідомлень
#16 років тому
Здравствуйте !

Сразу к делу, суть задачи :

Сгенерировать яваскриптом ~ 700 000 элемнтов div или td, всунуть их в страницу, при этом оставить браузер живим

Поиск результатов не дал, так же как и эксперименты.

Решаема ли задача ?

Спасибо за внимание с ув. Сергей.
Олег Ш.
10 повідомлень
#16 років тому
Интересный вопрос...
В общем у меня на слабой машинке больше 10 000 уже тормозит. Всё от CPU зависит в основном Используй AJAX, чтобы сразу готовый код грузить, или разбивай на отдельные страницы.
Хотя может и есть чисто JS решение
Александр Ж.
72 повідомлення
#16 років тому
Мне больше интересно даже не как решить эту задачу, а для чего её нужно решать?
Сергей Шпак
596 повідомлень
#16 років тому
To ovs :

тормозить начинает не из-за создания такого количества элементов, а из-за их внедрения в тело документа ( браузер начинает сильно много ресов кушать ).

Аякс, Серверная часть не помогут, разбиение на страницы увы не подходит.

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

To Spree : а мне как раз наоборот как ее решить
Oleksandr Rakovets
7 повідомлень
#16 років тому
Любой шестимегабайтовый файл (это только теги 700 тысяч дивов) будет тормозить в браузере, если еще и JS прибавить...
Так что такие масштабы необходимо переносить на серверную часть.
Если не секрет, скажите, пожалуйста, зачем Вам такие масштабы?
Сергеевич А.
791 повідомлення
#16 років тому
Цикл на 700 тысяч шагов)
куда проще
нагрузка все равно убийственная)
Олег Ш.
10 повідомлень
#16 років тому
Цитата ("-Caesar-"):

тормозить начинает не из-за создания такого количества элементов, а из-за их внедрения в тело документа ( браузер начинает сильно много ресов кушать ).

Ну тут основной прикол именно в JS. Без него просто относительно долго грузится. В общем, на машинке MacBook Pro 2.6GHz 2Gb работает. Для цикла, который 700 000 раз выводит: <div>Test</div>
)
Руслан Aia
51 повідомлення
#16 років тому
Из идей, разве что создание всех элементов не одни махом за цикл в 700 000.. а подгружая постепенно с перекурами Например через setTimeOut.. Т.е. в одном такте таймера подгружать не сильно много элементов, например 3000, чтобы браузер успевал в перекурах отвечать за запросы ОС. Но в любом случае, ресурсов при это скушается очень много. Тут действительно лучше бы на аяксе, подгружать только просматриваемую часть данных.
Дмитрий О.
771 повідомлення
#16 років тому
Вообще жуткая задача, у меня браузер не сразу очухался даже когда сгенерил. Результат измерения времени начала/конца выполнения:
2:19:15.609
2:19:57.312

делал "дедовским" innerHTML
Вадим С.
49 повідомлень
#16 років тому
Если много вложенных, то попробуйте сделать с помощью DocumentFragment () - как раз добавление элементов в тело документа будет происходить быстрее
Сергей Шпак
596 повідомлень
#16 років тому
То Phoenix_Ukraine :
понимаю что для более четкого решения,
Вам необходимо знать цели задачи, но пока все же это секрет

то RUSYA :
перекуры пробовал очень разнообразные, все мимо ...

Цитата ("franky"):
2:19:15.609
2:19:57.312

) у меня он не очухивался, за статистику спс, учту.

Буду пробовать DocumentFragment.
Дмитрий О.
771 повідомлення
#16 років тому
Как попробуете - отпишитесь, очень интересно какой из подходов реализуемый. Если будет интерес - скину свой код.
Забыл пояснить свои эксперименты:
время - это начало/конец выполнения;
Опера;
Атлон 2.5, 1.5Гб ОЗУ.
Сергей В.
244 повідомлення
#16 років тому
И все таки зачем нужно столько выводить элементов на страницу?
Сергей Шпак
596 повідомлень
#16 років тому
2 VistaSolutions
когда доведу до ума то что хотел, обязательно Вам покажу,
пока это останется загадкой, думаю вы меня поймете

После многократных попыток, консенсус не был найден,
задача ушла на второй план, до сих пор не реализована)
Сергей В.
244 повідомлення
#16 років тому
Но 700 000 элементов в браузер это много, это очень много
Максим В.
731 повідомлення
#16 років тому
А эти 700 000 элементов будут сразу в видимой части?
Сергей Шпак
596 повідомлень
#16 років тому
VeMax
что значит в видимой части ?
Сергей В.
244 повідомлення
#16 років тому
Я к тому и говорю, если не в видимой части то можно аяксом подгружать нужно, лишнее убирать
Владимир М.
327 повідомлень
#16 років тому
... как на google maps, например
Сергей Шпак
596 повідомлень
#16 років тому
Лишнего нет, аякс не катит ...