Почему люди минимизируют ресурсы, а не HTML?

Просто добавьте что-то примечательное здесь.


myQueue.hpp:

template <class T> 
class QueueA {
    int size;
    ...
public:
    template <class T> T dequeue() {
       // implementation here
    }

    bool isEmpty();

    ...
}    

myQueue можно определить методы шаблонного класса, которые просто прекрасны в файле реализации. cpp:

// implementation of regular methods goes like this:
template <class T> bool QueueA<T>::isEmpty() {
    return this->size == 0;
}


main()
{
    QueueA<char> Q;

    ...
}
41
задан Salvador Dali 6 November 2015 в 21:20
поделиться

6 ответов

Одна из вероятных причин заключается в том, что разметка обычно меняет НАМНОГО чаще, и ее придется минимизировать для каждой загрузки страницы. Например, на данной странице переполнения стека есть временные метки, имена пользователей и количество повторов, которые могут меняться при каждой загрузке страницы, а это значит, что вам придется минимизировать и для каждой загрузки страницы. С помощью «статических» файлов, таких как css и javascript, вы можете минимизировать гораздо реже, так что, по мнению некоторых, это стоит того, чтобы работать заранее.

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

25
ответ дан Triptych 6 November 2015 в 21:20
поделиться

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

5
ответ дан Kieron 6 November 2015 в 21:20
поделиться

Ответы, написанные здесь, чрезвычайно устарели или даже иногда не имеют смысла. Многое изменилось со старого 2009 года, поэтому я постараюсь ответить на него правильно.

Краткий ответ - вам определенно следует минимизировать HTML . Это тривиально сегодня и дает примерно 5% ускорение . Для более длинного ответа прочитайте весь ответ

В старые времена люди вручную минимизировали css / js (запустив его через какой-то конкретный инструмент для минимизации). Было довольно сложно автоматизировать процесс и определенно требовал определенных навыков. Зная, что многие сайты высокого уровня даже сейчас не используют gzip (что тривиально), понятно, что люди неохотно минимизировали html.

Так почему же люди минимизировали js, а не html ? Когда вы минимизируете JS, вы делаете следующее:

  • удаляете комментарии
  • удаляете пробелы (табуляции, пробелы, новые строки)
  • меняете длинные имена на короткие (var isUserLoggedIn до var a)

Что дало много улучшений даже в старые времена. Но в html вы не могли сменить длинные имена на короткие, к тому же было почти нечего комментировать. Таким образом, единственное, что осталось, это удалить пробелы и переводы строк. Который дает только небольшое количество улучшения.

Один неверный аргумент, написанный здесь, заключается в том, что, поскольку контент подается с помощью gzip, минимизация не имеет смысла. Это совершенно неправильно. Да, имеет смысл, что gzip уменьшает улучшение минификации, но зачем вам gzip комментарии, пробелы, если вы можете правильно их обрезать и gzip только важную часть. Это то же самое, что если у вас есть папка для архивирования, в которой есть какая-то хрень, которую вы никогда не будете использовать, и вы решаете просто сжать ее вместо очистки и застегнуть ее.

Другой аргумент, почему бессмысленно заниматься минимизацией, заключается в том, что это утомительно. Возможно, это было правдой в 2009 году, но после этого появились новые инструменты. Прямо сейчас вам не нужно вручную уменьшать разметку. С такими вещами, как Grunt , тривиально установить grunt-contrib-htmlmin и настроить его для минимизации вашего html. Все, что вам нужно, это как 2 часа, чтобы выучить хрюканье и все настроить, а затем все будет выполнено автоматически менее чем за секунду. Похоже, что 1 секунда (которую вы можете даже автоматизировать, чтобы ничего не делать с grunt-contrib-watch ), на самом деле не так уж плоха, примерно для 5% улучшений (даже с gzip).

Еще один аргумент в том, что CSS и JS являются статическими , а HTML генерируется сервером, поэтому вы не можете предварительно минимизировать его. Это было также верно в 2009 году, но в настоящее время больше и больше сайтов выглядят как одностраничное приложение, где сервер тонкий, а клиент выполняет всю маршрутизацию, создание шаблонов и другие. логика. Таким образом, сервер только дает вам JSON , а клиент отображает его. Здесь у вас есть много HTML для страницы и различных шаблонов.

Итак, чтобы закончить мои мысли:

  • Google минимизирует HTML.
  • pageSpeed ​​ просит вас минимизировать html
  • сделать это тривиально
  • это дает ~ 5% улучшения
  • это не такой же как gzip
29
ответ дан Salvador Dali 6 November 2015 в 21:20
поделиться

Page Speed ​​рекомендует уменьшить разметку:

http://code.google.com/speed/page-speed/docs/payload.html#MinifyHTML

5
ответ дан Will Peavy 6 November 2015 в 21:20
поделиться

Рассмотрим это:

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Demo</title>
<link rel="stylesheet" type="text/css" href="nonminify.css"/>
</head>
<body>
<div title="My   non   minifiable   page">
    <p class="http://www.example.com/classes/class/lorem-ipsum">

            Lorem ipsum dolor sit amet, consectetur adipisicing elit, 

            sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. 

            Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris 

            nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in 

            reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla 

            pariatur. Excepteur sint occaecat cupidatat non proident, sunt in 

            culpa qui officia deserunt mollit anim id est laborum.

    </p>
</div>
</body>
</html>

С этим файлом css:

div[title="My   non   minifiable   page"] 
      p[class~="http://www.example.com/classes/class/lorem-ipsum"]
{
    white-space:pre;
}

Учитывая это, для минификатора HTML, который может видеть только файл HTML, невозможно найти что-либо, что его можно безопасно минимизировать.

13
ответ дан 27 November 2019 в 00:32
поделиться

В наши дни разметка имеет тенденцию генерироваться динамически, и даже когда она статична, обычно существует множество страниц. JavaScript и CSS обычно минимизируются по принципу «один файл для каждого сайта», и поэтому их намного проще минимизировать вручную (или скриптом).

3
ответ дан 27 November 2019 в 00:32
поделиться
Другие вопросы по тегам:

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