Как спрайты CSS ускоряют веб-сайт?

Можно использовать PolynomialFeatures

Тестовый столбец:

import numpy as np
col = np.linspace(1, 5, 5).reshape((-1, 1))

Преобразование:

from sklearn.preprocessing import PolynomialFeatures

poly = PolynomialFeatures(degree=4, include_bias=False)
poly.fit_transform(col).T

> array([[  1.,   2.,   3.,   4.,   5.],
         [  1.,   4.,   9.,  16.,  25.],
         [  1.,   8.,  27.,  64., 125.],
         [  1.,  16.,  81., 256., 625.]])

12
задан Török Gábor 24 May 2009 в 20:11
поделиться

5 ответов

Важно понять, почему издержки Запроса HTTP оказывают такое влияние.

В его самой простой форме Запрос HTTP состоит из открытия сокета, отправления запроса на открытом сокете и чтении ответа.

Для открытия сокета стек TCP/IP клиента отправляет пакет SYN TCP на сервер. Сервер отвечает SYN-ACK, и клиент отвечает на это с ACK.

Так, перед отправкой единственного байта данных приложения необходимо ожидать целых полутора распространения в прямом и обратном направлениях к серверу, по крайней мере.

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

Все шансы необходимо избежать этого, Вы должны.

Современные браузеры выпустят несколько запросов параллельно в попытке уменьшить некоторые включенные издержки. Запросы HTTP могут теоретически быть сделаны на том же сокете, делая вещи немного лучше. Но в целом, сетевые распространения в прямом и обратном направлениях плохи для производительности и должны избежаться.

20
ответ дан 2 December 2019 в 03:04
поделиться

Меньше распространений в прямом и обратном направлениях к серверу. Вместо 6 (говорят) запросы на 6 различных изображений, Вы получаете один запрос и 6 использования того же изображения. Если сервер собирается ответить, "он не изменился с прошлого раза Вы спросили" большую часть времени, который может быть значительным сокращением суммы сетевого трафика.

15
ответ дан 2 December 2019 в 03:04
поделиться

Поскольку повторные изображения требуют нескольких запросов HTTP. См. правило № 1 производительности Yahoo: Минимизируйте Запросы HTTP.

14
ответ дан 2 December 2019 в 03:04
поделиться

В дополнение к уменьшению количества запросов, в зависимости от изображений Вы также могли бы найти, что размер файла меньше объединенный, чем это было бы, если они разделяются (должный, я думаю, к уменьшенной сумме метаданных, среди прочего). Другое дополнительное преимущество для использования спрайтов - то, что у Вас нет фликер-эффекта, когда Вы сначала нависаете над элементом, который имеет состояние при наведении курсора, которое может улучшить пользовательское восприятие производительности Вашей страницы. Интересный ресурс на оптимизации изображения, которую Вы могли бы хотеть считать, является этой серией сообщений в блоге на Блоге Пользовательского интерфейса Yahoo. При перечитывании методических рекомендаций Yahoo для производительности я был удивлен видеть, что они также предположили, что расположение Ваших изображений горизонтально, а не вертикально может также уменьшить Ваш размер файла.

3
ответ дан 2 December 2019 в 03:04
поделиться

Кроме причин выше, я нахожу их легче работать с. У Вас только есть один файл, который необходимо изменить и загрузить, и один URL для изменения в коде при обновлении изображения.

1
ответ дан 2 December 2019 в 03:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: