Кои CSS селектори или правила могат значително да повлияят на оформлението/изобразяването на предния край в реалния свят?

Струва ли си да се тревожим за производителността на рендиране на CSS? Или просто трябва да не се тревожим изобщо за ефективността на CSS и просто да се съсредоточим върху писането на елегантен или поддържаем CSS?

Този въпрос е предназначен да бъде полезен ресурс за разработчиците от предния край за това кои части от CSS действително могат да окажат значително влияние върху производителността на устройството и кои устройства/браузъри или двигатели могат да бъдат засегнати. Това не е въпрос за това как да напишете елегантен или поддържаем CSS, става дума само за производителност (въпреки че се надяваме, че написаното тук може да служи като информация за по-общи статии за най-добри практики).

Съществуващи доказателства

Google и Mozilla са написали насоки за писане на ефективен CSS и Наборът от правила на CSSLint включва:

Избягвайте селектори, които изглеждат като регулярни изрази .. не използвайте сложните оператори за равенство, за да избегнете наказания за производителност

но никой от тях не предоставя никакви доказателства (които мога да намеря) за въздействието, което имат.

В статия на css-tricks.com относно ефективния CSS се твърди (след очертаване на много най-добри практики за ефективност), които трябва да not .. sacrifice semantics or maintainability for efficient CSS тези дни.

публикация в блог за съвършенството убива предполага, че border-radius и box-shadow изобразиха порядъци по-бавно от по-простите CSS правила. Това беше изключително важно в двигателя на Opera, но незначително в Webkit. Освен това, удивителен CSS бенчмарк за списание установи, че времето за изобразяване на правилата за показване на CSS3 е незначително и значително по-бързо от изобразяването на еквивалентния ефект с помощта на изображения.

Опознайте мобилния си телефон тества различни мобилни браузъри и установи, че всички те изобразяват CSS3 еднакво незначително бързо (за 12 ms), но изглежда, че са направили тестовете на компютър, така че не можем да направим заключение за това как ръчните устройства работят с CSS3 като цяло.

Има има много статии в интернет за това как да пишете ефективен CSS. Въпреки това, все още не съм намерил изчерпателни доказателства, че лошо обмисленият CSS всъщност има значително въздействие върху времето за изобразяване или бързината на даден сайт.

Заден план

Предложих награда за този въпрос, за да се опитам да използвам силата на общността на SO, за да създам полезен, добре проучен ресурс.


person Robin Winslow    schedule 05.09.2012    source източник
comment
Едно нещо мога да ви кажа със сигурност: използвайте идентификатори, когато трябва да се използват идентификатори, и класове, когато трябва да се използват класове. Разликата в производителността е незначителна, семантиката не е. ID за елементи, които по дефиниция се появяват само веднъж; класове за тези, които могат да се повтарят в цялата страница. Просто помислете за крайния случай, когато използвате клас за fixed CSS позиция.   -  person Michał Górny    schedule 05.09.2012
comment
@MichałGórny IDs трябва да се използват в маркиране, където са подходящи, но много хора вярват (включително и аз), че IDs никога не трябва да се използват в CSS селектори. Прочетете тази статия за (надявам се безпристрастна) разработка: screwlewse. com/2010/07/dont-use-id-selectors-in-css   -  person Robin Winslow    schedule 05.09.2012
comment
Е, тази статия е съгласна с мен относно това кога могат и трябва да се използват идентификатори. И моят краен пример за position: fixed е пример, когато CSS просто не трябва да се използва повторно. Не че препоръчвам да се направи нещо подобно.   -  person Michał Górny    schedule 05.09.2012
comment
Не забравяйте, че повечето браузъри вече се опитват да оптимизират селекторите възможно най-добре. Вземете добре познатия пример за дясно наляво съвпадение на базата на елемент. Повечето селектори са толкова бавни, колкото има елементи на вашата страница. Ако имате много проста страница само с три деца на body и нищо друго, който и да е селектор, който хвърлите към нея, не би трябвало да причини неизправност или дори замръзване на браузъра.   -  person BoltClock    schedule 05.09.2012
comment
Също така, този въпрос само/основно за селектори ли се отнася или за всеки аспект на CSS? Ефективността на CSS не се крие само в селекторите, знаете. Браузърите трябва да се тревожат за неща като оформление, позициониране, изчисляване и изчертаване на градиенти, алфа композиране и всякакви други неща. И това е изобразяване. Съвпадението на селектора не се изобразява; това е просто да разберете кои елементи да изобразите по какъв начин.   -  person BoltClock    schedule 05.09.2012
comment
@RobinWinslow Колкото и да е забавно, страницата, която споменахте в статията за ID селектори стилизират елементите по ID много пъти :)   -  person Chris    schedule 05.09.2012
comment
@BoltClock Интересувам се от всички елементи на стила, които могат значително да повлияят на производителността на изобразяване. Въпреки че селекторите са по-лесни за определяне на най-добрата практика, така че тези съвети вероятно ще имат най-голямо сцепление.   -  person Robin Winslow    schedule 05.09.2012
comment
Вече нямам източника на тази информация, но един сайт, който четях преди около месец, докато проучвах мобилни устройства, твърдеше, че определени CSS свойства са по-скъпи за изобразяване (т.е. консумират повече живот на батерията). Те споменаха 3 конкретни като най-лоши нарушители, но единственият, който ми се стори в съзнанието като вероятно да се използва с това поколение браузъри, е box-shadow.   -  person cimmanon    schedule 09.09.2012
comment
Това е просто инструмент за сравнение за вашите уебсайтове като цяло, обикновено го използвам, за да оптимизирам уебсайтовете си. Pagespeed(от google) : chrome.google.com/webstore/detail/, браузър чете всяка спирачка, която правите във вашия css, така че колкото по-компактен е файлът, толкова по-добре. много инструменти, които могат да го направят. Мислех, че не знам кои маркери се справят по-добре.   -  person Simon Dragsbæk    schedule 11.09.2012
comment
Харесвам първото изречение на статия №2 от публикацията на Саймън Уест по-долу: Вероятно не сте го забелязали... Той е прав: Не го забелязах. Исках да има сребърен куршум тук - няма. Предпочитам да напиша по-малко код, повече семантичен код и да спестя търсенето на милисекунди за тези с много свободно време. Не вярвам, че това са селектори или идентификатори срещу класове - единственото нещо, което някога съм открил, че влияе върху производителността, е размерът на файла и прекъсванията на редовете/броят в CSS файловете (дори тези, които са раздути със селектори на класове, което раздува маркирането също). ‹-- връщаме ни към семантиката.   -  person Dawson    schedule 11.09.2012
comment
Възможен дубликат на Избор на ефективни селектори въз основа на изчислителна сложност   -  person Oleg    schedule 15.09.2012


Отговори (6)


Повечето отговори тук се фокусират върху ефективността на селектора, сякаш това е единственото нещо, което има значение. Ще се опитам да разгледам някои любопитни факти за spriting (предупреждение за спойлер: те не винаги са добра идея), ефективността на използваната стойност на css и изобразяването на определени свойства.

Преди да стигна до отговора, позволете ми да премахна IMO: лично аз категорично не съм съгласен с заявената необходимост от „данни, базирани на доказателства“. Това просто прави твърдението за ефективност да изглежда достоверно, докато в действителност областта на машините за изобразяване е достатъчно разнородна, за да направи всяко подобно статистическо заключение неточно за измерване и непрактично за приемане или наблюдение.

Тъй като оригиналните констатации бързо остаряват, бих предпочел да видя предните разработчици да имат разбиране за основните принципи и тяхната относителна стойност спрямо точките за поддръжка/четимост - в края на краищата, преждевременната оптимизация е коренът на всяко зло ;)


Нека започнем с ефективността на селектора:

Плитките, за предпочитане едно ниво, специфични селектори се обработват по-бързо. Липсват изрични показатели за ефективност от първоначалният отговор, но ключовият момент остава: по време на изпълнение HTML документ се анализира в DOM дърво, съдържащо N елемента със средна дълбочина D и след това се прилагат общо S CSS правила. За да намалите изчислителната сложност O(N*D*S), трябва

  1. Нека най-десните клавиши съвпадат с възможно най-малко елементи - селекторите се съпоставят отдясно наляво^ за допустимост на индивидуално правило, така че ако най-десният ключ не съвпада с определен елемент, няма нужда от допълнителна обработка на селектора и той се отхвърля.

    Общоприето е, че селекторът * трябва да се избягва, но тази точка трябва да се разгледа допълнително. „Нормалното“ нулиране на CSS всъщност съответства на повечето елементи – когато тази SO страница е профилирана, нулирането е отговорно за около 1/3 от цялото време за съвпадение на селектора, така че може да предпочетете normalize.css (все пак, това добавя само до 3,5ms - точката срещу преждевременната оптимизация стои силно)

  2. Избягвайте селектори на наследници, тъй като те изискват до ~D елемента да бъдат итерирани. Това засяга основно потвържденията на несъответствията - например положителното .container .content съвпадение може да изисква само една стъпка за елементи във връзка родител-дете, но DOM дървото ще трябва да бъде обходено до html, преди да може да бъде потвърдено отрицателно съвпадение.

  3. Намалете до минимум броя на DOM елементите, тъй като техните стилове се прилагат индивидуално (заслужава да се отбележи, че това се компенсира от логиката на браузъра, като кеширане на референтни файлове и рециклиране на стилове от идентични елементи – например, когато стилизирате идентични братя и сестри )

  4. Премахнете неизползваните правила, тъй като браузърът в крайна сметка трябва да оцени тяхната приложимост за всеки изобразен елемент. Достатъчно - най-бързото правило е това, което го няма :)

Те ще доведат до количествено измерими (но, в зависимост от страницата, не непременно осезаеми) подобрения от гледна точка на производителността на машината за изобразяване, но винаги има допълнителни фактори, като натоварване на трафика и анализ на DOM и др.


След това ефективността на свойствата на CSS3:

CSS3 ни донесе (наред с други неща) заоблени ъгли, градиенти на фона и вариации на падащи сенки - и с тях, камион с проблеми. Помислете за това, по дефиниция предварително изобразеното изображение се представя по-добре от набор от CSS3 правила, които първо трябва да бъдат изобразени. От webkit wiki:

Градиенти, сенки и други декорации в CSS трябва да се използват само когато е необходимо (напр. когато формата е динамична въз основа на съдържанието) - в противен случай статичните изображения винаги са по-бързи.

Ако това не е достатъчно лошо, градиентите и т.н. може да се наложи да се преизчисляват при всяко събитие на пребоядисване/преформатиране (повече подробности по-долу). Имайте предвид това, докато по-голямата част от потребителите не могат да разглеждат страница с много css3 като тази без забележки закъснение.


След това изпълнение на spriting:

Избягвайте високи и широки спрайтове, дори ако техният отпечатък от трафика е относително малък. Обикновено се забравя, че машината за изобразяване не може да работи с gif/jpg/png и по време на изпълнение всички графични активи се оперират като некомпресирани растерни изображения. Поне е лесно да се изчисли: ширината на този спрайт по височина по четири байта на пиксел (RGBA) е 238*1073*4≅1MB. Използвайте го върху няколко елемента в различни едновременно отворени раздели и той бързо добавя значителна стойност.

Доста екстремен случай на това е открит в mozilla webdev, но това изобщо не е неочаквано, когато съмнителни практики като диагонални спрайтове се използват.

Алтернатива, която да разгледате, е индивидуални кодирани с base64 изображения, вградени директно в CSS.


След това преформатиране и пребоядисване:

Погрешно схващане е, че reflow може да се задейства само с JS DOM манипулация - всъщност всяко приложение на стил, засягащ оформлението, би го задействало, засягайки целевия елемент, неговите деца и елементите, които го следват и т.н. Единственият начин да предотвратите ненужни повторения от него е да опитате и избягвайте изобразяване на зависимости. Ясен пример за това би бил изобразяване на таблици:

Таблиците често изискват множество преминавания, преди оформлението да бъде напълно установено, защото те са един от редките случаи, в които елементи могат да повлияят на показването на други елементи, които са били преди тях в DOM. Представете си клетка в края на таблицата с много широко съдържание, което кара колоната да бъде напълно преоразмерена. Ето защо таблиците не се визуализират постепенно във всички браузъри.


Ще правя редакции, ако си спомня нещо важно, което е пропуснато. Някои връзки, с които да завършите:

http://perfectionkills.com/profiling-css-for-fun-and-profit-optimization-notes/

http://jacwright.com/476/runtime-performance-with-css3-vs-images/

https://developers.google.com/speed/docs/best-practices/payload

https://trac.webkit.org/wiki/QtWebKitGraphics

https://blog.mozilla.org/webdev/2009/06/22/use-sprites-wisely/

http://dev.opera.com/articles/view/efficient-javascript/

person Oleg    schedule 15.09.2012
comment
Със сигурност съм съгласен, че областта на машините за изобразяване е разнородна, но това не изглежда причина да нямаме статистика. Как разработчиците от предния край могат да определят относителната стойност на принципите на основата спрямо поддържаемостта/четимостта, без да се информират от някои статистики? Само защото областта е разнообразна и винаги се променя, не е извинение да действате без доказателства. - person Robin Winslow; 17.09.2012
comment
@RobinWinslow: тълкуваш отговора ми погрешно - не съм привърженик на търсенето на базирани на доказателства данни, когато оригиналната логика на обработка е лесно достъпна за анализ вместо това. Например искате да оспорите дълбоко свръхспецифичните селектори - можете да стартирате стотици тестове, които в крайна сметка се влияят от браузъра и неговата версия, системния хардуер, спецификата на тестовия случай... или можете да прочетете на RTL обработка и вижте, че такива селектори ще увеличат обработката, без значение колко оптимизации въвежда браузърът. - person Oleg; 18.09.2012
comment
TL;DR: не анализирайте резултатите, анализирайте модела. Както и да е, предупредих ви, че това е IMO;) - person Oleg; 18.09.2012

Докато е вярно, че

компютрите бяха много по-бавни преди 10 години.

Освен това разполагате с много по-голямо разнообразие от устройства, които могат да осъществят достъп до вашия уебсайт в наши дни. И докато настолните компютри/лаптопи се появиха с бързи темпове, устройствата на пазара на смартфони от среден и нисък клас в много случаи не са много по-мощни от това, което имахме в настолните компютри преди десет години.

Но като казахме, че скоростта на избор на CSS вероятно е близо до дъното на списъка с неща, за които трябва да се тревожите по отношение на осигуряването на добро изживяване за възможно най-широк диапазон от устройства.

Разширявайки това, не успях да намеря конкретна информация, свързана с по-модерни браузъри или мобилни устройства, които се борят с неефективни CSS селектори, но успях да намеря следното:

  1. http://www.stevesouders.com/blog/2009/03/10/performance-impact-of-css-selectors/

    Вече е доста остарял (IE8, Chrome 2), но има приличен опит за установяване на ефективността на различни селектори в някои браузъри и също така се опитва да определи количествено как броят на CSS правилата влияе върху времето за изобразяване на страницата.

  2. http://www.thebrightlines.com/2010/07/28/css-performance-who-cares/

    Отново доста остарял (IE8, Chrome 6), но стига до крайности в неефективните CSS селектори * * * * * * * * * { background: #ff1; }, за да установи влошаване на производителността.

person Simon West    schedule 05.09.2012
comment
+1 за споменаване на разпространението на устройства, но докато смартфоните са по-малко мощни, двигателите за изобразяване са станали много по-ефективни. Особено бих приветствал конкретни примери за проблеми с изобразяването, с които се борят смартфоните. - person Robin Winslow; 05.09.2012
comment
Не успях да намеря никакви примери онлайн за мобилни браузъри, които се борят с изобразяването въз основа на неефективни селектори, но успях да намеря няколко малко остарели примера, при които хората се опитват действително да поставят някои числа в различните неефективни css селектори, актуализирах отговора си съответно и се надяваме, че ще го намерите полезен. - person Simon West; 05.09.2012
comment
страхотно, това са точно ресурсите, които търсех. Изглежда, че основните заключения от тези две статии са, че дори ако наистина се опитвате да създадете неефективни заявки, това ще направи незначителна разлика, което е точно такова заключение, което търсех. Все още би било страхотно, ако можем да намерим всякакви тестове, включително мобилни устройства. Ще оставя този въпрос отворен за известно време, за да видя какво могат да измислят другите хора, но това определено е най-добрият кандидат отговор. - person Robin Winslow; 05.09.2012

За такава голяма премия съм готов да рискувам нулевия отговор: няма официални CSS селектори, които да причиняват осезаемо забавяне на изобразяването и (в днешно време на бързи компютри и бързи итерации на браузъра) всички намерени се бързо решен от производителите на браузъри. Дори в мобилните браузъри няма проблем, освен ако непредпазливият разработчик желае да използва нестандартни jQuery селектори. Те са маркирани като рискови от разработчиците на jQuery и наистина могат да бъдат проблематични.

В този случай липсата на доказателства е доказателство за липсата на проблеми. Така че използвайте семантично маркиране (особено OOCSS) и докладвайте за всяко забавяне, което откриете, когато използвате стандартни CSS селектори в неясни браузъри.

Хора от бъдещето: Проблемите с производителността на CSS през 2012 г. вече бяха нещо от миналото.

person alexfernandez    schedule 13.09.2012

не е ли css неуместен начин да го направите по-бърз, трябва да е последното нещо, което гледате, когато гледате производителността. Направете своя css по начин, който ви подхожда, компилирайте го. и след това го сложете в главата. Това може да е грубо, но има много други неща, които трябва да търсите, когато търсите ефективността на браузъра. Ако работите в дигитално бюро, няма да ви плащат, за да направите тази допълнителна 1ms във времето за зареждане.

Както коментирах, използвайте pagespeed за chrome, това е инструмент на Google, който анализира уебсайта в 27 параметъра, css е 1 от тях.

Моят пост се отнася точно до това, че не бих предпочел около 99% от уеб потребителите да могат да отворят уебсайта и да го видят правилно, дори хората с IE7 и други подобни. След това да затворите около 10% с помощта на css3, (Ако се окаже, че можете да получите допълнителни 1-10ms за производителност).

Повечето хора имат поне 1mbit/512kbit или повече и ако заредите тежък сайт, зареждането отнема около 3 секунди, но можете да спестите 10ms може би от css??

И когато става въпрос за мобилни устройства, трябва да правите сайтове само за мобилни телефони, така че когато имате устройство с размер на екрана по-малък от „Width“px, вие имате отделен сайт

Моля, коментирайте по-долу, това е моята гледна точка и моят личен опит с уеб разработката

person Simon Dragsbæk    schedule 11.09.2012
comment
Тези практики на изпълнение са добре известни и приети. Този въпрос е относно ефективността на изобразяването. Като се има предвид, че притесненията за изобразяване са по-малко важни от притесненията за прехвърляне, опитвам се да открия доколко има значение производителността на изобразяването и колко сложни трябва да бъдат селекторите или правилата за изобразяване, преди това да има значение. Благодаря, че добавихте гласа си от страната на това, че това изобщо няма значение, но освен това този отговор всъщност не допринася за дебата. - person Robin Winslow; 11.09.2012
comment
Това допринася по начин, по който всички устройства са твърде бързи с процеса на изобразяване, че няма смисъл да се разглежда наистина, освен ако не използвате картини с 150dpi или по-висока, което е без значение, защото мрежата се показва само като 72dpi. И мога да добавя, че ако можете да изобразите 3d в браузъра, 2d е много по-бързо, отколкото да ви пука. Но се надявам да намерите доказателство, че е значително по-бърз, добавих като любим в този въпрос - person Simon Dragsbæk; 11.09.2012
comment
Добре, така че вашият коментар за 150 dpi е точно нещото, което търся - но искам доказателство, а не само вашето твърдение: доказателство, че 150 dpi прави разлика и доказателство, че други опасения за изобразяване не са проблем. Аз лично вярвам, че трябва да има някои уебсайтове, чийто дизайн е толкова сложен, че изобразяването на CSS е поне малко бавно, поне на мобилни устройства. - person Robin Winslow; 11.09.2012
comment
Виждам накъде отиваш, но все още има само 72 dpi в мрежата, но за да изобразиш 150, трябва да изобразиш два пъти повече пиксели. Ако добавите скоростта на изтегляне към вашето време за изобразяване, може да имате случай, например ако направите заоблени ъгли с css 3 или css 2, тогава имате времето за изтегляне + времето за изобразяване, в сравнение с просто изобразяване. - person Simon Dragsbæk; 11.09.2012

Въпреки че не е пряко свързано с кода, използването на <link> върху @import за включване на вашите таблици със стилове осигурява много по-бърза производителност.

„Не използвайте @import“ през stevesouders.com

Статията съдържа множество примери за тестове за скорост между всеки тип, както и включването на един тип с друг (напр.: CSS файл, извикан чрез <link> също съдържа @import към друг css файл).

person justacoder    schedule 14.09.2012
comment
Опасявам се, че не е по темата, а също и едно от по-опростените настройки на производителността, които си представям, че повечето разработчици на предния край вече знаят. - person Robin Winslow; 17.09.2012
comment
Може би, но не трябва да се предполага. Покриването на основите никога не е лоша идея. - person justacoder; 17.09.2012
comment
Освен когато не е по темата :p - person Robin Winslow; 17.09.2012

person    schedule
comment
Опасявам се, че се надявах на по-задълбочен отговор от този (вероятно ще добавя премия, когато мога след няколко дни, ако не получа страхотен отговор). Очевидно зависи от машината за изобразяване, но не съм изненадващо особено заинтересован от това как се представят последните версии на Webkit (Chrome / Safari), Gecko (Firefox) и Trident (IE) (и в по-малка степен Presto). А що се отнася до общата ви гледна точка, че производителността на изобразяване няма значение, сигурни ли сте, че това се отнася за сложни CSS3 заявки, като подобните на регулярен израз, споменати във въпроса ми? - person Robin Winslow; 05.09.2012
comment
@RobinWinslow Не че няма значение; просто не можете да го оптимизирате много чрез промяна на дребни неща (като „избягване на идентификатори“). Регулярните изрази не са толкова зли, колкото предполагате - отново, не забравяйте, че имате работа с низове, които почти никога не са по-дълги от 10 знака. От друга страна, избягването на използването на по-сложни селектори, когато можете, ви дава: A) по-чист CSS файл. B) повишаване на ефективността. Ако идентификационните номера бяха толкова гадни, колкото някои статии твърдят, спецификацията на CSS не би ги включила. - person Chris; 05.09.2012
comment
@Abody Наистина не искам да обсъждам дали трябва да използвате идентификатори, тъй като не е по темата, но не можете със сигурност да предполагате, че CSS спецификацията е безупречна? В отговор на A) да, това прави CSS по-чист (което е добре), но още веднъж конкретно питам за ефектите върху производителността. Все още бих приветствал някои конкретни примери за хора, които действително измерват ефективността на рендиране. - person Robin Winslow; 05.09.2012
comment
@RobinWinslow Добре, актуализирах отговора с действителни резултати от теста. - person Chris; 10.09.2012
comment
@BoltClock Мога да направя още тестове, ако е необходимо. - person Chris; 10.09.2012
comment
@RobinWinslow Добавих също връзка към тестовете, ако искате да тествате сами. - person Chris; 10.09.2012
comment
Намирам за изненадващо, че и Firefox, и IE превъзхождат Chrome (сравнително значително) в почти всички тези показатели. Firefox също трябва да има наистина добър двигател за изобразяване, за да надмине Chrome и IE с такава значителна стойност в последните два теста. - person Sean; 13.09.2012
comment
@SeanDunwoody И аз го намерих за изненадващо. Извърших сравнителен анализ на JavaScript преди няколко седмици и Chrome беше много по-бърз от Firefox и IE (въпреки че Firefox беше по-бърз от IE). Странно е, че Chrome има по-лоша производителност при изобразяване на CSS. Не съм тествал обаче с друг браузър WebKit, така че не знам дали проблемът е специфичен за WebKit или Chrome. - person Chris; 13.09.2012
comment
Да, знам, че Chromes JavaScript Engine унищожава почти всеки друг двигател там (с възможност може би IonMonkey) Предполагам, че това е МНОГО по-важно (и забележимо) и популярни сайтове като Facebook, Google и т.н., които използват много интензивно JavaScript ; следователно защо те може да са пренебрегнали малко своя CSS двигател. - person Sean; 13.09.2012
comment
@SeanDunwoody Да. Предполагам, че въпросът тук е, че повечето често срещани CSS селектори са сравнително достатъчно бързи във всички браузъри (100ms не е много лошо), стига да не правите неохотни фантазии като използването на сложни селектори за избиране на големи набори от елементи. Най-важното е вашият CSS да има смисъл. Ако създавате страница за чат и искате да стилизирате съобщенията, всички съобщения divs имат title. Човек може да направи: .chatpage div[title], но със сигурност е по-добре просто да дадете клас на всички съобщения и след това да ги стилизирате с помощта на .message. Той е по-прост, по-лесен за поддръжка и по-ефективен. - person Chris; 13.09.2012
comment
@Abody97: това е още по-впечатляващо, след като проверих профила ви. +1 - person Oleg; 16.09.2012
comment
След като току-що попаднах на това, намирам тези тестове за доста странни. Защо мислите, че този метод за измерване на времето всъщност измерва това, което искате да измерите? Това, че скриптът е в ‹главата› и точно преди края на документа, не означава непременно, че обработката на CSS оформлението се случва между тях. Предполагам, че причината тези числа да са малко странни е, че поне Firefox просто изпълнява скриптовете независимо от CSS оформлението. Това би обяснило защо получава почти постоянни резултати. Надеждното измерване на времето, необходимо до „визуално завършена“ страница, вероятно ще бъде трудно. - person Simon Lehmann; 30.04.2013