Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JSMin.php缩小Javascript_Php_Javascript_Performance_Zend Framework_Minify - Fatal编程技术网

使用JSMin.php缩小Javascript

使用JSMin.php缩小Javascript,php,javascript,performance,zend-framework,minify,Php,Javascript,Performance,Zend Framework,Minify,我有一个服务器端带有JSMin缩小功能的网站。问题是,在实现JSMin之后,我的服务器变得很慢 发生这种情况是因为存在导入其他特定文件的URL,并且这些文件被添加到缩小的文件中 现在我想知道我是否应该总是将这些特定的脚本加载到一个大的缩小文件中,或者我是否应该忘记这种方法并将脚本作为单独的文件导入 我正在使用Zend Framework 1.11.x和BundleFu+JSMin,如果将所有脚本压缩到一个文件中,客户端性能会更好。浏览器必须做的最慢的事情之一是建立新的http连接以下载新文件。通

我有一个服务器端带有JSMin缩小功能的网站。问题是,在实现JSMin之后,我的服务器变得很慢

发生这种情况是因为存在导入其他特定文件的URL,并且这些文件被添加到缩小的文件中

现在我想知道我是否应该总是将这些特定的脚本加载到一个大的缩小文件中,或者我是否应该忘记这种方法并将脚本作为单独的文件导入


我正在使用Zend Framework 1.11.x和BundleFu+JSMin,如果将所有脚本压缩到一个文件中,客户端性能会更好。浏览器必须做的最慢的事情之一是建立新的http连接以下载新文件。通过将所有JavaScript放在一个缩小的文件中,与使用一堆单独的缩小脚本相比,可以显著提高性能


另一方面,进行额外的处理会损害服务器性能。这取决于您是否要在服务器性能和客户端性能之间进行权衡。但是请记住,有研究表明。

我在许多项目中实施的最佳解决方案是将所有javascript拆分为最大200kb的有限文件。我总是将JS拆分为两个(或罕见的三个)文件。第一个是库(jquery、zepto、swfobject、bootup…)和“用户代码”(我自己的$()。点击…)

在我的
/js
文件夹中有一个
.htaccess
,它将所有
scripts.js?version=45445
重写为
compiler.php
。然后,编译器脚本验证版本号,检查缓存的编译脚本并返回它。如果未找到,则动态编译,放入缓存并返回。这样js就会每小时编译一次,而且总是缩小

我很高兴你关心的1kb你节省压缩

下面是一个示例代码:

#.htaccess
RewriteEngine on
RewriteRule ^scripts_(\d+).js(.*)$ __compress_js.php?_v=$1 [L]
然后类似这样的东西,在php中

<?php
// __compress_js.php
ob_start();
include 'config.php';
$cache = FileCache::getInstance();
$cache->setPath(CACHE_PATH);

$cache_key = '_compressed_' . VERSION . '.js';

if ( ! $cache->check($cache_key, 3600)){
    $js = JSMin... // array of files
    $cache->write($cache_key, $js);
}
Header::js();
echo $cache->read($cache_key, 3600);

更好的方法是使用.htaccess重写现有文件,这些文件是在第一次运行php脚本时创建的。