【发布时间】:2017-12-17 08:35:33
【问题描述】:
我一直在将渲染页面缓存到 redis 缓存中,并将它们作为快速缓存提供给未登录的用户。大多数页面的页面大小达到 100kb 左右。在将 html 插入 redis 之前,我可以通过缩小 html 来减少 20kb 的大小,但似乎这个过程会破坏页面上的任何内联 javascript。
我现在正在使用以下 PHP 函数来执行缩小。我当然不得不禁用它,但它似乎做得很好,只是需要对 JavaScript 更加厌倦。
function MinifyHtml($html)
{
$search = array(
'/\>[^\S ]+/s', // strip whitespaces after tags, except space
'/[^\S ]+\</s', // strip whitespaces before tags, except space
'/(\s)+/s', // shorten multiple whitespace sequences
'/<!--(.|\s)*?-->/' // Remove HTML comments
);
$replace = array('>','<','\\1','');
$buffer = preg_replace($search, $replace, $html);
return $buffer;
}
【问题讨论】:
-
这里有问题吗?
-
这听起来可能很愚蠢,但是您是否考虑过没有内联 JavaScript?无论如何,这是一种不好的做法。
-
除此之外,我自己的服务器通过删除
/\r?\n\t*/来缩小 HTML - 效果很好! -
考虑压缩它而不是缩小它。您会看到同样大小的好处(实际上可能要好得多),并且底层 HTML 不会发生任何变化。
-
我实际上考虑过 gzip,它将 100kb 减少到大约 20kb,但我在服务器上有 15gb 的可用内存,所以我认为浪费内存比浪费 CPU 时间更好跨度>
标签: javascript php html css caching