Лучше использовать тег link или тег style для импорта CSS?

Используя:

lst = [8, 8, 9, 9, 7, 15, 15, 2, 20, 13, 2, 24, 6, 11, 7, 12, 4, 10, 18, 13, 23, 11, 3, 11, 12, 10, 4, 5, 4, 22, 6, 3, 19, 14, 21, 11, 1, 5, 14, 8, 0, 1, 16, 5, 10, 13, 17, 1, 16, 17, 12, 6, 10, 0, 3, 9, 9, 3, 7, 7, 6, 6, 7, 5, 14, 18, 12, 19, 2, 8, 9, 0, 8, 4, 5]

И использование timeit модуля:

$ python -m timeit -s 'import uniquetest' 'uniquetest.etchasketch(uniquetest.lst)'

И так далее для различных других функций (который я назвал в честь их плакатов), у меня есть следующие результаты (на моем первом поколении Intel MacBook Pro):

Allen:                  14.6 µs per loop [1]
Terhorst:               26.6 µs per loop
Tarle:                  44.7 µs per loop
ctcherry:               44.8 µs per loop
Etchasketch 1 (short):  64.6 µs per loop
Schinckel:              65.0 µs per loop
Etchasketch 2:          71.6 µs per loop
Little:                 89.4 µs per loop
Tyler:                 179.0 µs per loop

[1] Примечание, что Allen изменяет список на месте †“, я полагаю, что это скосило время в этом timeit, модуль выполняет код 100000 раз, и 99999 из них со списком простофили меньше.

<час>

Сводка : простая реализация с победами наборов над запутывающими остротами:-)

21
задан BoltClock 17 May 2012 в 14:47
поделиться

2 ответа

Согласно Yahoo Рекомендации по ускорению работы вашего веб-сайта , всегда используйте вместо @import . Более подробная информация доступна в этом сообщении блога .

В IE (проверено на 6, 7 и 8), @import заставляет таблицы стилей быть скачивается последовательно. Скачивание параллельные ресурсы - ключ к более быстрая страница. Такое поведение в IE заставляет страницу занимать больше времени для завершения.

Использование позволяет браузеру открывать дополнительные соединения, тем самым сокращая время загрузки.

22
ответ дан 29 November 2019 в 21:17
поделиться

Краткая версия? @import не поддерживается в старых браузерах, в определенных ситуациях возникают проблемы с определенными широко используемыми браузерами (IE6 и IE7), может вести себя по-разному в разных браузерах, когда работает и предлагает нет преимуществ перед .

Длинная версия? Вы хотите использовать , но есть несколько сценариев (сейчас в основном неактуальных), в которых использование @import имеет смысл. Из В чем разница между @import и ссылкой для CSS? :

Наиболее частая причина использования @import вместо (или вместе с) потому что старые браузеры не узнайте @import, чтобы вы могли скрыть стили от них.

Речь идет о сокрытии вещей от IE4, поэтому я сказал «в основном несущественные». Один из этих случаев скрывает что-то от IE6, но это лучше сделать с помощью Условных комментариев .

Более современное (и актуальное) сравнение находится в Использование правила CSS @import :

Internet Explorer (вы знали, что он в конце концов) не справляется с указание типов носителей - задыхается. В основном IE (версии 4-7) пытаются прочтите тип носителя, как будто он был частью имени файла, в результате чего весь вещь, чтобы обрушиться. Как таковой, если вы не хотите, чтобы в вашем CSS был тип носителя по умолчанию «все», вы наверное, лучше использовать комбинация тега и импорт - указание типа носителя в вашу ссылку, а затем импортировать соответствующий CSS в файле, который вы ссылка на. Я еще не слышал, если IE8 страдает той же проблемой (если вы случайно знаю, пожалуйста, просветите меня комментарии!).

Другой источник - Yahoo Best Practices for Speed ​​Up Your Web Site :

Один из предыдущих передовых методов заявляет, что CSS должен быть наверху чтобы учесть прогрессивные рендеринг.

В IE @import ведет себя так же, как используя в нижней части страницу, поэтому лучше не использовать ее.

но на самом деле не объясняет почему (отсюда предыдущие ссылки).

10
ответ дан 29 November 2019 в 21:17
поделиться