Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
Я сформировал в ASP.NET2 XML-файл, заполнил им TreeView и вывожу его в браузер. SQL отработал мгновенно, мгновенно отработал IIS. И браузер достаточно быстро показал дерево. Но после этого начинается непонятки. Хотя XML-файл приличный - пару мегабайта (но его можно фильтровать и cущественно сокращать) - но все ж таки браузер выводит его удивительно долго - не менее пяти минут на приличной машине... Причем отобразил-то браузер страничку тоже практически мгновенно, потом CPU 100% и еще минут пять он думает... Что ж такое там делает браузер еще пять минут после показа странички? Как это понять? Я проверил безо всяких ASP - в целом производительность среды такая, что как просто XML-файл, браузер выводит эти два мегабайта менее чем за секунду... Смотрю итоговый исходный текст сформированной страницы уже в браузере - он оказывается уже больше 20 мегабайт (в десять раз больше обьема загруженных данных), причем 99.9% процентов его обьема занимает ViewState. Сначала я подумал, что я где-то ошибся и что-то огромное сохранил во ViewState. Но щас вообще все убрал - это просто практически статическая страничка, на которой из XML загружен TreeView. Никакого пользовательского сохранения во ViewState нет. С другой стороны, даже двадцатимегабайтный XML-выводится браузером секунд пять - но никак ни пять минут... Посоветуйте, плиз, как боротся с таким невероятным размером ViewState... Это как бы первый и главный вопрос, и второй - что же все таки делает браузер еще пять минут после показа странички? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 10:00 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
браузер рисует страничку, потом грузит в 2мб в память и парсит там в DOM-дерево, потом строит узлы в тривью по этому дереву. Это всё занимает 2 часа. Т.к. какждый узел в тривью содержит дополнительную информацию то размер увеличиваетсяв 10 раз. В зависимости от структуры данных цифры могут меняться но порядок примерно таким и останется Как бороться - учесть что это веб и передавать на клиент не все данные а только нужную часть. Как выделить только нужную часть - зависит от задачи. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 17:58 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
Попробуй у TreeView отключить вивстейт, например TreeView1.EnableViewState=false Но, возможно, тебе всё-таки придётся написать свой контрол TreeView, так как стандартный действительно "тяжеловат". Есть примеры кода на aspnetmania.com Max Pro ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 20:13 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
авторНо, возможно, тебе всё-таки придётся написать свой контрол TreeView, так как стандартный действительно "тяжеловат". Есть примеры кода на aspnetmania.com ткни пальцем в пример кода на aspnetmania.com с PopulateOnDemand ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 21:08 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
vladgrig авторНо, возможно, тебе всё-таки придётся написать свой контрол TreeView, так как стандартный действительно "тяжеловат". Есть примеры кода на aspnetmania.com ткни пальцем в пример кода на aspnetmania.com с PopulateOnDemand Ну вот я недавно публиковал. Скоро (как время будет, через несколько дней наверно) кстати обновлю, добавив туда яваскрипта на схлопывание уровней. Вот ссылка: http://aspnetmania.com/Code/Code/185.html Там зарегистрированные пользователи могут ставить отметки по пятибальной шкале. Если не в лом, то проставь. Готовая dll и топик для обсуждения там указан. Примечание: dll собрана для 1.1-го Фраймеворка. Для 2-го необходимо заново пересобрать dll. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 21:15 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
В догонку. В моём примере не нужен нафиг никакой XML. Необхомина и достаточна в данном случае всего лишь хранимая процедура SQL. Max Pro ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 21:18 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
Ну и перед уходом домой для улучшения настроения добавлю этот пост 999-й. Прямо как номер нашей межгалактической станции. :-) Max Pro ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 21:21 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
Max ProНу и перед уходом домой для улучшения настроения добавлю этот пост 999-й. Прямо как номер нашей межгалактической станции. :-) Max Pro Ну, паздравляим! :) По поводу тривью. На самом деле сделать PopulateOnDemand как два пальца... :) Примеров кода аякса навалом: 20 строк жабаскрипта и мона лепить лэйбу "Сделана для УЕБ 2.0" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 22:09 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
Наверное борьбы с этим просто нет... Я уж понял... Кстати до этого я УЖЕ отказался полностью от XmlDataSource в связи с его глючностью и стал сам грузить XML в TreeView. Этот XmlDataSource просто замучал меня тем, что ни в какую не хотел показать TreeView, которое на нем сидело, с измененными вложенностью и порядком узлов, сколько я не пихал в него новый XML из SQL. Потом отказался и стал безо всяких XmlDataSource загружать TreeView сам. Так конечно препятствий нет для действительно динамического дерева... Теперь похоже пришла пора и от TreeView отказываться... ТЯЖЕЛОВАТ - это мягко сказано очень при соотношении полезных и паразитных (ViewState) данных 1:10 Это наверное даже не тяжесть TreeView, а тяжесть самой технологии ASP.NET - ведь таких проблем (10:1) нет ни у Flash, ни у PHP... PS. Состояние контрола отключать бесполезно, он не помнит ничего и раскрывает ничего клиентским скриптом... Ну а ограничивать - этот путь понятен... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 22:34 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
авторПо поводу тривью. На самом деле сделать PopulateOnDemand как два пальца... :) Примеров кода аякса навалом: 20 строк жабаскрипта и мона лепить лэйбу "Сделана для УЕБ 2.0" :) вот хоть один человек понял о чем разговор... а то с Мах-ом вроде разговариваем на одном языке, а друг друга не понимаем... ;) покажи примеры бесплатных контролов деревьев с использованием ajax... авторТЯЖЕЛОВАТ - это мягко сказано очень при соотношении полезных и паразитных (ViewState) данных 1:10 Это наверное даже не тяжесть TreeView, а тяжесть самой технологии ASP.NET - ведь таких проблем (10:1) нет ни у Flash, ни у PHP... думаю у них и таких контролов нет... давно хотел сказать (пусть эта мысль и затрётся здесь среди других топиков): странно, мы с одной стороны хотим ТАКОЙ функциональности от контролов, какой не позволяют себе на сайтах и в проектах сами разработчики... с другой стороны, когда разработчики идут у нас на поводу и, расширяют функционал контролов до наших желаний, мы плачем что контролы стали ТЯЖЁЛЫМИ... всё это у меня вызывает некое непонимание, чего же нам на самом деле хочеться!!!??? P.S. никаких ответов я не жду - у админов заранее прошу прощения за маленький, но очень актуальный флуд ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2006, 22:47 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
vladgrigпокажи примеры бесплатных контролов деревьев с использованием ajax... Ни пакажу! :) На самом деле специяльно не искал, но если понадобится, то, думаю, самому сделать будет проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 10:45 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
авторНа самом деле специяльно не искал, но если понадобится, то, думаю, самому сделать будет проще. Вот я тоже - ДУМАЮ... а взять и сделать не получается... а казалось бы "два пальца об асфальт..." ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 12:05 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
vladgrig авторНа самом деле специяльно не искал, но если понадобится, то, думаю, самому сделать будет проще. Вот я тоже - ДУМАЮ... а взять и сделать не получается... а казалось бы "два пальца об асфальт..." ;) Госсподя! :) Код: plaintext 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. 37. 38. 39. 40. 41. 42. 43. 44. Корневые ноды сидят в sOutput (span, div, etc...). Т.е. при клике перерисовываеццо все меню. Если надо отображать только чайлдноды, то необходимо добавить в функцию параметр куда писать полученный ответ с сервера. Копируем скрипт и на любой корневой ноде навешиваем что-то типа "onclick=MakeAjaxCall(GenerateTreeView.aspx?nodeID= & nodeID);" Это то, что первое пришло в голову и на что понадобилось минут 15-20. За день, я думаю, мона сваять приличную аякс-тривьюху :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 13:34 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
И парситься двухмегабайтный хмл будет по каждому клику по ноде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 13:38 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
авторЭто то, что первое пришло в голову и на что понадобилось минут 15-20. За день, я думаю, мона сваять приличную аякс-тривьюху :) что пришло???!!! К чему мне описание XMLHTTP - это можно прочесть в любой статье про AJAX... чужие мысли стали приходить в голову???!!! если уж на то пошло, то на странице вообще ничего подобного выписывать не надо, для этого есть готовые .dll (см. ссылку внизу страницы) наверное само дерево должно быть как то организовано?! по кликам должны попадать значения в функции and etc. Речь то идёт о самописном дереве - надо использовать не TreeNode - а самому создавать контролы подобные им... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 13:49 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
vladgrig что пришло???!!! ... К чему мне описание XMLHTTP/... чужие мысли стали приходить в голову???!!! Влад, программеру мозги зачем даны? :) Или ты хочешь, чтобы я за 10 минут сваял тривью, готовое к продаже? Так разрешено мечтать тока манагерам проектов :) Я запостил пример скрипта, с помощью которого (утверждаю) за день мона сваять приличное тривью для собственного проекта. Без всяких длл и тринод. "Кто скажет, что это девочка, может кинуть в меня камень" (це) кина :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 14:41 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
авторВлад, программеру мозги зачем даны? :) Или ты хочешь, чтобы я за 10 минут сваял тривью, готовое к продаже? Так разрешено мечтать тока манагерам проектов :) Я запостил пример скрипта, с помощью которого (утверждаю) за день мона сваять приличное тривью для собственного проекта. Без всяких длл и тринод. знаешь - я УТВЕРЖДАЮ, что ни за день ни за неделю ты не осуществишь своих планов... ;) попробуй меня переубедить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 15:01 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
to Galant Код: plaintext 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. 37. 38. 39. 40. 41. 42. 43. Это именно та функция, которая должна будет вызываться при ActiveXObject('Microsoft.XMLHTTP')) P.S. осталось НЕМНОГО ;) - переделать все TreeNode на собственные web-контролы которые авторсидят в sOutput (span, div, etc...). ну, и подписать для этих контролов нужные стили и события ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 15:34 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
vladgrig попробуй меня переубедить Боюсь нисмагу. Ниасилю :) Влад, я специяльно оговорился про "приличное тривью для собственного проекта ". В своих собственных проектах ты все контролы, классы, методы и т.д. пишешь в расчете на универсальное использование? Т.е. если вдруг бухгалтерия попросит тебя в нижнем левом углу прилепить тривью с филиалами-отделами-сотрудниками, то ты, конечно же, сделаешь функции для "заливки" из SQL Server, Access, Oracle, MySQL, XML, plain text? Наворотишь кучу ненужных в данном месте и вообще в проекте свойств и методов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 16:00 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
авторВлад, я специяльно оговорился про "приличное тривью для собственного проекта". В своих собственных проектах ты все контролы, классы, методы и т.д. пишешь в расчете на универсальное использование? Т.е. если вдруг бухгалтерия попросит тебя в нижнем левом углу прилепить тривью с филиалами-отделами-сотрудниками, то ты, конечно же, сделаешь функции для "заливки" из SQL Server, Access, Oracle, MySQL, XML, plain text? Наворотишь кучу ненужных в данном месте и вообще в проекте свойств и методов? вот я и предлагаю - не заниматься словесным ананизмом, а как приличным людям - взять и помочь окружающим... на мой взгляд - дерево мягких (FW 2.0) действительно сырое (не совсем пригодное) для использования... могу рассказать о личных наблюдениях - если интересно... здесь по форуму я встречал вопросы - как сделать селект ноде, если эта нода представлена в виде ссылки (у MS это глубоко зашито и сломать нелегко)? были так же вопросы - как сделать дерево каталогов на диске? and etc. Давай создадим приличное (БЕСПЛАТНОЕ) дерево - с использованием AJAX просматривающее каталоги на диске - ДУМАЮ ОКАЖЕМ ОГРОМНУЮ УСЛУГУ ОКРУЖАЮЩИМ НАС СОБЕСЕДНИКАМ!!! P.S. Ваш ответ!!!??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 16:15 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
авторP.S. Ваш ответ!!!??? Я так понимаю, что любая отмазка с моей стороны будет равносильна признанию меня "словесным ананистом"? :) Выхода нет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 16:57 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
Давайте посмотрим на ситуацию немного под другим углом. Бывает, что анализ проблемы в терминах «web-контролов» (или более обобщенно – визуального проектирования) не всегда способствует простоте ее решения. Всё таки, веб – клиент-серверная технология, и стоит определить, какие задачи решаются клиентом (браузером), а какие сервером. Рассмотрим задачу с нашм TreeView . Если нам не хочется гонять на клиента все дерево, а хочется AJAX’у, то нам хорошо бы моделировать дерево на клиенте. Java Script позволяет сделать это достаточно элегантно. Также клиент должен уметь запрашивать у сервера данные для раскрытия произвольного узла. Это тоже не проблема (XmlHttpRequest или манипуляции с невидимым iframe – кому как больше нравится). Серверу остается уметь отвечать на вышеописанный запрос понятным для клиента образом. При таком подходе, дереву на клиенте, в общем-то все равно, что показывать – каталоги на диске, ветки форума или еще что.. Что с сервера приедет – то и покажет.. Сделать это, как и утверждалось в этой ветке, достаточно просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 17:14 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
авторЯ так понимаю, что любая отмазка с моей стороны будет равносильна признанию меня "словесным ананистом"? :) Вовсе нет... Просто речь о том что говорить - дело не хитрое... Намного сложнее всё это исполнить... авторСделать это, как и утверждалось в этой ветке, достаточно просто. Давайте переходить от слов к делу - предлагаю найти друг друга (написать письма) - определиться с тактикой и стратегией создания шедевра - и не засорять эту ветку флудом по поводу "как это просто" ... всё равно никто в это утверждение не поверит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 18:31 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
e-mail в профиле, аська - там же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 18:36 |
|
||
|
Не пойму что делает браузер
|
|||
|---|---|---|---|
|
#18+
А тактика (и стратегия) простая. Могу сгрузить слегка специализированный под конкретные нужды (вывод рубрикатора) код дерева на Java Script, и отвечать на любые вопросы по нему... На большее, к сожалению, времени нет. Модифицируйте и пользуйтесь по своему усмотрению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2006, 18:40 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=33630879&tid=1392660]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 393ms |

| 0 / 0 |
