【问题标题】:Can I remove linebreaks and spaces from HTML source?我可以从 HTML 源代码中删除换行符和空格吗?
【发布时间】:2011-08-22 13:04:16
【问题描述】:

除了人类无法阅读之外,当我从 html 源代码中删除每个换行符和空格时,是否有任何缺点?

那么浏览器的渲染是否不同?渲染会变得更快(或者可能更慢)吗?

【问题讨论】:

标签: html internet-explorer browser webkit mozilla


【解决方案1】:

关于缩小 HTML 的问题已经回答了很多。以下是一些:

【讨论】:

    【解决方案2】:

    您将拥有更小的文件大小,因此下载速度可能会更快(尽管可能不明显)。确实有tools

    【讨论】:

      【解决方案3】:

      如果您删除换行符,则没有任何害处。但是根据你的问题

      ...当我从 html 源代码中删除 每个 换行符和空格时?

      如果您确实删除了每个换行符和行空间,则可能无法达到您的目的。 你应该只删除额外的换行符和空格。还要注意不要改变值属性表单数据,或任何其他属性。

      关于它可以提供的改进:

      它可能会更快地渲染,因为它需要解析较少的数据。但是这种加速非常小。我什至不鼓励它,因为它降低了可读性,并且 CPU 的加速时间约为几百个时钟周期。下载也是如此。它减少了仅仅一点点的数据(除非文档有太多的空白)

      这最好在服务器端使用 GZIP 压缩进行输出。以下是启用它的 php 行。如果您的服务器中有 php,那么只需将您的 *.html 文件重命名为 *.php ,然后在任何输出之前添加以下代码:

      if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler");
      

      您也可以使用 .htaccess 文件执行此操作。谷歌对此有更多了解。

      【讨论】:

        【解决方案4】:

        有点晚了,但仍然......通过使用 output_buffering 就这么简单:

        function compress($string)
        {
            // Remove html comments
            $string = preg_replace('/<!--.*-->/', '', $string);
        
            // Merge multiple spaces into one space
            $string = preg_replace('/\s+/', ' ', $string);   
        
            // Remove space between tags. Skip the following if
            // you want as it will also remove the space 
            // between <span>Hello</span> <span>World</span>.
            return preg_replace('/>\s+</', '><', $string);      
        }
        
        ob_start('compress');
        
        // Here goes your html.    
        
        ob_end_flush();
        

        【讨论】:

          猜你喜欢
          • 2011-07-12
          • 2015-11-09
          • 1970-01-01
          • 1970-01-01
          • 2017-08-27
          • 2015-10-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多