URI данных ASCII, UTF-8 или base64

При включении URI данных в HTML-страницу лучше всего использовать ASCII, UTF-8 или base64?

Я использую его для файла SVG, который может быть представлен как любой из них.

UTF-8 (после кодирования URI) все еще немного меньше, чем base64 в несжатом виде, но есть ли другие преимущества (скажем, производительности ЦП) в base64?

1 ответ

Решение

Я делал несколько тестов, связанных с этим. Что касается внешнего интерфейса, я думаю, что будет очень мало различий, кроме base64, требующего декодирования перед рендерингом. На стороне сервера чем меньше файл, тем меньше данных для обработки, тем меньше используется процессор. При этом я подозреваю, что UTF-8 будет наименее ресурсоемким сервером.

Некоторые полусвязанные заметки:

С точки зрения размера файла svg побеждает png, когда сервер gzips.

Я читал, что есть небольшое попадание процессора из-за включения gzipping на стороне сервера. Но выигрыш процессора в том, что приходится иметь дело с меньшим количеством данных, весит необходимость сжать каждый файл.

SVG рендерится с большей нагрузкой на процессор, чем png,jpg,gif, bmp и т. Д. Битовые карты можно просто визуализировать. SVG необходимо вычислить, растеризовать, а затем визуализировать. Что-то, что нужно с осторожностью при анимации многих или сложных SVG.

Некоторые статистические данные, которые я нашел

  • logo png = 9.2kb -> gzip = 9.2kb
  • logo svg = 10.5kb -> gzip = 4.4kb
  • logo svg после использования python scour для оптимизации svg = 9.4kb -> gzip = 3.9kb
  • логотип svg url, закодированный = 10.9kb -> gzip 4kb
  • логотип svg base64 закодированный = 12.4 -> gzip 5.5kb
Другие вопросы по тегам