Форум Торонто - Torontovka.com
[Search] [Rules] [Register] [Login]
Forums » Archive » HTML performance help 
Page: 1 2 3 4 [All]
Author Message
Joined: 11/20/2001
Posts: 20
Posted on Friday, August 12, 2005 11:20:00 AM
 
Привет всем.

Мне надо бы узнать как разные HTML tags отличаютса друг от друга в смысле performance and execution time

например что быстрее и/или легче:
[ span ] vs. [ div ] vs. [ font ] vs. [ p ] and so on

я конечно знаю что разница не большая но когда веб страничка с маленьким столиком в 10,000 records грузится какое-то время - ета разница может стать существеной....

я бы смог конечно поэксперементировать сам, но времени нет, а узнать надо


Joined: 4/22/2004
Posts: 11
Posted on Friday, August 12, 2005 11:30:00 AM
 
Никакой разницы. Проверь технологию загрузки данных.

10,000 рекордов !!??? :) :)

А кому нужен список из 10,000 рекордов ? :)

Подход - бред полный. Пересмотри подход. Сделай Поиск, ограничь обьём данных на выход до 30-40-50, но не 10,000 :)
Ни один сайт не выдержит такого количества данных.

ХТМЛ здесь не причём.
Joined: 4/11/2002
Posts: 17176
Posted on Friday, August 12, 2005 11:36:00 AM
 
а pagination нахуй надо??
Joined: 11/20/2001
Posts: 20
Posted on Friday, August 12, 2005 11:37:00 AM
 
spasiba profi, but in financial industry 10000 (although its an extreme case) records are quite possible...

neuzheli 1000 spanov is the same as 1000 divof?
Joined: 11/20/2001
Posts: 20
Posted on Friday, August 12, 2005 11:38:00 AM
 
pagination ne katit, this data is represented as a tree, need to see all at once
Joined: 11/20/2001
Posts: 20
Posted on Friday, August 12, 2005 11:39:00 AM
 
anyone else?
Joined: 4/11/2002
Posts: 17176
Posted on Friday, August 12, 2005 11:41:00 AM
 
ты думаешь это таги так долго грузятся? Может таки твоё query так долго ранится?
Joined: 4/22/2004
Posts: 11
Posted on Friday, August 12, 2005 11:46:00 AM
 
"neuzheli 1000 spanov is the same as 1000 divof? "

А почему сообственно нет ? :)

Смотри, всё очень просто:

Сервер получает из базы данных данные и составляет ХТМЛ, который посылает на клиента:

[ span ]XXX[ /span ] vs [ div ]XXX[ /div ] ??

на 2 байта больше ? :)

На самом деле ХТМЛ это же обычный текст и ничего больше !!! Обьектная модель ХТМЛ здесь не при чём. Всё сводится к количеству байтов (которые надо переслать через кабель) заключённому в сконструированном на сервере ХТМЛе.

Не думаю что такие мелочи могут быть сушественны.



Касательно "paging" - не решат проблемы перебноса данных с базы данных на сервер, но уменьшает размер ХТМЛа - если размер ХТМЛа проблема, то paging явно должен помочь.



Joined: 4/22/2004
Posts: 11
Posted on Friday, August 12, 2005 11:50:00 AM
 
"pagination ne katit, this data is represented as a tree, need to see all at once"


Забудь про pagination. У тебя не та ситуяйция.

Подход неверный и здесь. Создавай collapsed tree, при нажатии на "+" (открыть ветку) подгружай данные только для этой ветки, то есть кусками а не всё сразу.


10,000 за раз - 100% проблема, гарантирую.
А если у тебя ]1 пользователя, то 150% что зависнит с таймаутом./..
Joined: 4/22/2004
Posts: 11
Posted on Friday, August 12, 2005 11:50:00 AM
 
Kak MSDN :)
Joined: 1/29/2001
Posts: 944
Posted on Friday, August 12, 2005 12:06:00 PM
 
Во первых если web server правильно сконфигурирован, html все равно будет либо deflate либо gzip сжат. Поэтому глупо сравнивать байтовые разницы между div и span.

Другими словами, traffic time, IMHO, is a non-issue.

Проблема в том что browser rendering engine загнется 10000 records рендерить. Это будет слишком долго. Никакие html оптимизации типа fixed width tables не помогут. Мы это уже пробовали.
Joined: 4/22/2004
Posts: 11
Posted on Friday, August 12, 2005 12:15:00 PM
 
BaNaNaN, 100%
Joined: 11/20/2001
Posts: 20
Posted on Friday, August 12, 2005 12:16:00 PM
 
spasiba profi, BaNaNaN tak che posovetuesh?
Joined: 1/29/2001
Posts: 944
Posted on Friday, August 12, 2005 12:22:00 PM
 
Посоветую либо jit data loading via AJAX, как сказал profi, либо в крайнем случае АctiveX/Flash plug-in. Либо non-browser app.
Joined: 11/20/2001
Posts: 20
Posted on Friday, August 12, 2005 12:29:00 PM
 
jit data loading via AJAX???????? what's that???

and what ActiveX did u have in mind?
Joined: 4/22/2004
Posts: 11
Posted on Friday, August 12, 2005 12:38:00 PM
 
BaNaNaN, не мудри ;)


Сделай сторед-процедуры, которые будут извлекать только нужные данные в ограниченном количестве (топ 100 например) или же по критерию того узла дерева на который ты кликаеш для отркытия ветки дерева.

и всё.

МСДН же работает, а у них наверно не 10,000 рекордов а миллионы. Если бы они все ети миллионы пытались показать/запросить им понадобился бы кластер на 50,000 суперкомьютеров типа тех что в Пентагоне ;)
Joined: 11/20/2001
Posts: 20
Posted on Friday, August 12, 2005 12:50:00 PM
 
profi this is all already implemented.... obviously we display a collapsed tree by default.... but there is a button to Expand All and lowest branches of the tree have as meny as 3000 leaf nodes - so its pretty scary to expand even just one such node

Joined: 10/25/2004
Posts: 935
Posted on Friday, August 12, 2005 12:57:00 PM
 
в первую очередь - надо бы проверить сколько твой секвел бежит на сервере(если у тебя процесс на сервере а не на клиенте).

Если там долго - то НТМЛ не причем... а ето зачастую так и есть...

10,000 рекордов - будет долго в любом случае... Профи прав - дерево с плюсиком - вей ту гоу.

А язык то какой, кроме SQL

Joined: 10/25/2004
Posts: 935
Posted on Friday, August 12, 2005 1:00:00 PM
 
On expand all - expand only the level below, если спекс позволяют.

On any other expand - collapse all expanded except the one you're expanding
Joined: 10/25/2004
Posts: 935
Posted on Friday, August 12, 2005 1:02:00 PM
 
Еще, если ограниченный доступ к аппликации, делай все на клиенте, предварительно переташив туда все что может понадобится - первый раз долго а потом бистро-бистро
Joined: 1/29/2001
Posts: 944
Posted on Friday, August 12, 2005 1:12:00 PM
 
Если требуется показать 10000 static scrollable records, то можно подождать один раз и показывать моментально когда нужно. Если требуется показать 10000 dynamic scrollable records, то забудьте про html rendering - тогда нужен client-side CPU, ie. applets (ActiveX/Java/Flash etc)
Joined: 8/12/2005
Posts: 11
Posted on Friday, August 12, 2005 1:20:00 PM
 
BaNaNaN: ты прав....

вабще надо объяснить клиенту шо 10,000 рекордов он физически работать не сможет......

пох что финансы хуянсы...... просто тупо....
Joined: 9/10/2002
Posts: 7576
Posted on Friday, August 12, 2005 1:33:00 PM
 
а почему просто нельзя ХМЛ файл перекинуть? IE тебе и дерево нарисует и [+][-] добавит.
Joined: 4/11/2002
Posts: 17176
Posted on Friday, August 12, 2005 1:38:00 PM
 
Dreamucci
загружать на апликейшн сервер в кеш столько рекордов имеет смысл только при редком апдэйте этой инфы, типа лукап дэйты
Joined: 10/25/2004
Posts: 935
Posted on Friday, August 12, 2005 2:30:00 PM
 
я имел ввиду загружать все в клиента on per need basis.

Once expanded - store it on client.
Joined: 11/20/2001
Posts: 20
Posted on Friday, August 12, 2005 2:32:00 PM
 
чуваки, забудте про бак-енд ... итс олл гуд,
всё уже давно принято во внимание....
вопрос очень простой и именно по client-side:

what will the browser (specifically IE if that matters) render faster

10,000 SPANs
10,000 DIVs
10,000 FONTs

and so on.........

is it all the same?, it can't be ....
i know for a fact that DIV (as an object) is faster than a TABLE...
is it just the metter of actual ammout of letters (bites) used to write those tags?
or are the actual objects rendered differently by browser? (or the same?)


а вообще спасиба всем огромное за поддержку
Joined: 11/20/2001
Posts: 20
Posted on Friday, August 12, 2005 2:36:00 PM
 
проблема в том что ето первая в моей практике инфа, которую я сам не смог нарыть, а нарыв ростёт :-)
Joined: 10/25/2004
Posts: 935
Posted on Friday, August 12, 2005 2:37:00 PM
 
DIV by default gives you line break, SPAN does not.... I assume you display it per line... Than DIV is faster.... TABLE renedering is definately slower especially on IE
Joined: 11/20/2001
Posts: 20
Posted on Friday, August 12, 2005 2:46:00 PM
 
воооот, спасиба, Dreamucci

мне новая строка не нужна, мне нужен цвет фонта
(сразу попрошу css не предлагать т.к. цвета в базе данных и нужен один из етих объектов в любом случае to overwrite existing color... and user defines these colors... so no css).
так что спан будет быстрее в етом случае?
what about FONT, P, or even A tags?

и вообще откуда ты знаешь? где инфу нарыл?
Joined: 10/25/2004
Posts: 935
Posted on Friday, August 12, 2005 2:51:00 PM
 
Методом научного тыка.... :}

Поробуй оба и сравни ...тут я не знаю, но помоему фонт дольше рендерится. чем див и спан
Joined: 11/20/2001
Posts: 20
Posted on Friday, August 12, 2005 3:11:00 PM
 
спасиба дружище
Joined: 8/13/2005
Posts: 10
Posted on Saturday, August 13, 2005 12:19:00 AM
 
В твоем случае следует использовать тег [ р ]. Прикол в том, что в соответствии со спецификацией HTML4, его не обязательно закрывать. Т.е вместо конструкции [ div ]record1[ /div ]
[ div ]record2[ /div ]
имеем
[ р ]record1
[ р ]record2
Красиво?
Joined: 6/14/2005
Posts: 15530
Posted on Saturday, August 13, 2005 1:20:00 AM
 
"при нажатии на "+" (открыть ветку) подгружай данные только для этой ветки"

Это как это? Без перезачитки если?
Joined: 6/14/2005
Posts: 15530
Posted on Saturday, August 13, 2005 1:25:00 AM
 
HTML

Чем задавать такие вопросы, взял бы, декомпилировал iexplore.exe, да посмотрел бы сам, что там и как рендерится. Экие все ленивые стали!
Joined: 8/13/2005
Posts: 1
Posted on Saturday, August 13, 2005 1:52:00 AM
 
Taurus Volans: а че тут не понятного

див как отдельный лэир, есть джаваскрипт которым ты управляешь.... експанд/колапсе

когда експанд подружаешь данные....

ну ето все 2000 год....

ща в новых разработках джавасцрипт может делать XmlHttp запросы, и все дела, в конце сцылки есть пример

http://www.eggheadcafe.com/articles/20050709.asp

Joined: 6/14/2005
Posts: 15530
Posted on Saturday, August 13, 2005 2:08:00 AM
 
Как можно "подгрузить" данные без перезачитки страницы?
Joined: 7/20/2002
Posts: 8282
Posted on Saturday, August 13, 2005 6:12:00 AM
 
Важное в HTML коде - чем меньше знаков тем лучше. Код исполняется браузером а не сервером. Чем меньше html файл тем лучше.
Joined: 8/13/2005
Posts: 10
Posted on Saturday, August 13, 2005 10:51:00 AM
 
]Как можно "подгрузить" данные без перезачитки страницы?

Напрямую - никак. Как обходные варианты, которые почти или совешенно незаметны для пользователя :
1) простой
- использовать iframe в том месте страницы, где блоки данных должны меняться. Небольшая проблема - нужно немного "поколдовать" с динамической высотой iframe, если объем выводимых данных разный при каждой перезагрузке iframe.

2) элегантный
- использовать iframe (с шириной и высотой = 0) в сочетании с javascript. Данные по ссылке с основной страницы загружаются в iframe и с помощью javascript передаются в тело основной страницы.
Joined: 4/11/2002
Posts: 17176
Posted on Saturday, August 13, 2005 10:58:00 AM
 
Кодер-маньяк
ты инклюды имеешь в виду? При чём тут они???
Joined: 8/13/2005
Posts: 10
Posted on Saturday, August 13, 2005 11:19:00 AM
 
Нет, не иклюды.
Инклюдами обычно считаются включения блоков кода или файлов на стороне сервера (SSI, ASP, PHP, Java etc.).
Я говорю о грамотном использовании HTML для вывода блоков данных при их очень большом кол-ве.
Исползование iframe позволяет элегантно решить проблему вывода без перезагрузки всей страницы. Перезагружается только содержимое iframe .
Можно, конечно использовать буферизированный вывод данных с сервера (например, flush в PHP), но это уже другая тема ;)))
Joined: 6/14/2005
Posts: 15530
Posted on Saturday, August 13, 2005 2:22:00 PM
 
Если только меняется визибилити или там размер iframe, то при загрузке основной страницы vs все равно обращаемся к БД и зачитываем все скопом (не динамически).
Joined: 6/14/2005
Posts: 15530
Posted on Saturday, August 13, 2005 2:22:00 PM
 
vs = мы
Joined: 4/11/2002
Posts: 17176
Posted on Saturday, August 13, 2005 2:22:00 PM
 
Кодер-маньяк
интересная фигня, надо почитать
Joined: 12/7/2001
Posts: 155
Posted on Saturday, August 13, 2005 10:53:00 PM
 
Бля сборище моральных уродов...

перформанц страдает не на процессоре, а на network latency... если страничка в 1 мегабайт, то и на процессоре..
.
И ваще бля для энд юсера 0.01 мс - это ужасно плохо, давит на психику, а вот 0.5-1 секунд - очень даже хорошо, а выше 7-8 секунд - большой хуёво...
Joined: 12/7/2001
Posts: 155
Posted on Saturday, August 13, 2005 11:02:00 PM
 
Бля переходите нах на Апплет если неохота теги перезагружать... заебали... посмотрите на Нетскейп, у них библиотека есть "Push-based HTTP", с IE тоже работает...
Joined: 8/13/2005
Posts: 10
Posted on Sunday, August 14, 2005 1:39:00 AM
 
Если только меняется визибилити или там размер iframe, то при загрузке основной страницы vs все равно обращаемся к БД и зачитываем все скопом (не динамически).

Не в визибилите дело (не мой совет, кстати) и размере iframe (это просто "косметика"), а именно в использовании встроенной страницы, коей является по сути iframe. Как раз это и избавляет от необходимости загонять мегабайты данных на пользовательскую машину, но подгружать их динамически (с точки зрения пользователя) без видимой перезагрузки всей страницы с ее интерфейсом и прочим визуальным оформлением.

Пример кода:
-----------------------------
[ a href="databox.php?nbr=1" target="data" ]records 50-100[ /a ]
[ a href="databox.php?nbr=2" target="data" ]records 100-150[ /a ]
[ iframe src="databox.php?nbr=0" id="data" name="data" ][ /iframe ]
-----------------------------
При начальной загрузке всей страницы первые (для примера) 50 записей вставляются в iframe "data" ( файл -databox.php)
При клике на первый линк происходит перезагрузка ТОЛЬКО iframe ( т.к. указан target="data") и в него вставляется рекордсет из следующих 50-и записей.
При клике на второй линк происходит перезагрузка iframe и вставляются следующие 50-и записей.
И т.д.
Думаю, идея понятна ;)))



Joined: 8/13/2005
Posts: 10
Posted on Sunday, August 14, 2005 1:56:00 AM
 
Да, добавочка вот.
Использование Java апплетов, ActiveX или Flash позволяет получить реальную динамику обмена данными с сервером, однако это уже не HTML, не всегда возможно(Java-машина отсутствует в стандартной инсталляции Windows XP) и вряд-ли разумно с точки зрения безопасности (ActiveX).
Для внутренней сети, возможно, использование ActiveX компонента будет оптимальным.
Joined: 6/14/2005
Posts: 15530
Posted on Sunday, August 14, 2005 3:15:00 AM
 
Кодер-маньяк

Я, собственно, имел в виду схему дерева типа "expand-collapse" с плюсиками-минусами. В принципе с идеей согласен. Сначала зачитывать только данные верхнего уровня и под каждой строкой рисовать iframes (изначально невидимые) со своим динамически формирующимся id-именем, на каждую из которых в каждой строке своя ссылка в соответствующий таргет. При клике на плюсик в верхнем уровне менять визибилити и высоту iframe (которую надо вроде как знать заранее из каунта записей, что вообще-то тоже занимает немалое время, либо как-то менять изнутри?) и передавать туда соответствующие параметры.
Но совсем хитро становится, когда дерево состоит из больше чем двух уровней (рекурсия-не рекурсия? - thnking aloud....)
Короче, надо попробовать, а то у меня есть ASP-штуковина с 4 уровнями, которая зачитывает все скопом, и при определенном количестве время зачитки перестает возбуждать......
Joined: 8/13/2005
Posts: 10
Posted on Sunday, August 14, 2005 11:07:00 AM
 
Пойми, не нужно много iframe-ов. Только один! В нем отображаются и перезагружаются данные в соответствии с параметрами запроса. Пришел на сервер запрос с параметром n=0 (для примера) - ] скрипт делает выборку в базе - ] вставляет в файл выбранные данные - ] отдает сформированный файл клиенту. Пользователь видит, как поменялась центральная колонка с данными (т.е. перезагрузился iframe).
Если объем данных разный при каждой перезагрузке, можно вычислять высоту iframe с помощью javascript (событие - onload) и тем-же javascript-ом динамически менять высоту iframe в основной странице.

То, как ты организуешь интерфейс/навигацию - линейно, в виде списка, "expand-collapse" дерева и т.п. , уже вторично и по большому счету не важно в свете задачи оптимального вывода данных.
Joined: 6/14/2005
Posts: 15530
Posted on Sunday, August 14, 2005 12:00:00 PM
 
Хммм... вроде логично. iframов-то все равно объявлять надо много - под каждым "плюсом", а файл действительно нужен только один.
Joined: 11/20/2001
Posts: 20
Posted on Monday, August 15, 2005 1:11:00 PM
 
Всё, уже неважно, меня уволили, сцуко ! :(
Joined: 6/14/2005
Posts: 15530
Posted on Monday, August 15, 2005 1:27:00 PM
 
:-) !!!
Joined: 10/25/2004
Posts: 935
Posted on Monday, August 15, 2005 1:32:00 PM
 
Допомогались!!!
Joined: 8/24/2004
Posts: 6087
Posted on Monday, August 15, 2005 1:33:00 PM
 
LOL :)
Joined: 11/20/2001
Posts: 20
Posted on Monday, August 15, 2005 6:04:00 PM
 
chuvaki : the data is tabular, kakie iframy v sraku, how am i gonna synchronize column headers, widths ands so on.... eto zhe skoka js nado chtoby eto vsio sinchronizirovat'

TABLULAR DATA - ONE HUGE TABLE
Joined: 11/20/2001
Posts: 20
Posted on Monday, August 15, 2005 6:04:00 PM
 
pizdit moj tiozka, poka ne uvolili
Page: 1 2 3 4 [All]
Forums » Archive » HTML performance help 
Copyright © 2020 Torontovka.com, All rights reserved