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