STam
Sun. 17. June 2007, 22:42
... nur so als Nachtrag.
Hier dazu
meine Änderung der
/backend/inc/inc.generate_code.phpVorher:
CODE
//JS and CSS file include
$sql = "SELECT
C.filetype, D.dirname, B.filename
FROM
". $cms_db['lay_upl'] ." A
LEFT JOIN ". $cms_db['upl'] ." B USING(idupl)
LEFT JOIN ". $cms_db['filetype'] ." C USING(idfiletype)
LEFT JOIN ". $cms_db['directory'] ." D on B.iddirectory=D.iddirectory
WHERE
idlay='$idlay'";
$db->query($sql);
while ($db->next_record()) {
if ($db->f('filetype') == 'js') $code .= <script src=\"".$db->f('dirname').$db->f('filename')."\" type=\"text/javascript\"></script>\n";
if ($db->f('filetype') == 'css') $code .= "<link rel=\"StyleSheet\" href=\"".$db->f('dirname').$db->f('filename')."\" type=\"text/css\" ".$sf_slash_closing_tag.">\n";
}
$code .= "<script type=\"text/javascript\">\n";
...
Nacher:...
CODE
//JS and CSS file include
$_code = array();
$sql = "SELECT
C.filetype, D.dirname, B.filename
FROM
". $cms_db['lay_upl'] ." A
LEFT JOIN ". $cms_db['upl'] ." B USING(idupl)
LEFT JOIN ". $cms_db['filetype'] ." C USING(idfiletype)
LEFT JOIN ". $cms_db['directory'] ." D on B.iddirectory=D.iddirectory
WHERE
idlay='$idlay'
AND C.filetype IN ('js', 'css')
ORDER BY D.dirname, C.filetype, B.filename";
$db->query($sql);
while ($db->next_record()) {
#if ($db->f('filetype') == 'js') $code .= "<script src=\"".$db->f('dirname').$db->f('filename')."\" type=\"text/javascript\"></script>\n";
#if ($db->f('filetype') == 'css') $code .= "<link rel=\"StyleSheet\" href=\"".$db->f('dirname').$db->f('filename')."\" type=\"text/css\" ".$sf_slash_closing_tag.">\n";
$_code[strval($db->f('dirname'))][strval($db->f('filetype'))][] = $db->f('filename');
}
if (!empty($_code)) foreach($_code as $k => $v) {
if (!empty($v)) foreach($v as $_k => $_v) {
if ($_k == 'js') $code .= sprintf("<script src=\"%1\$s%2\$s\" type=\"text/javascript\"></script>\n", $k, implode(',', $_v));
if ($_k == 'css') $code .= sprintf("<link rel=\"StyleSheet\" href=\"%1\$s%2\$s\" type=\"text/css\"%3\$s>\n", $k, implode(',', $_v), $sf_slash_closing_tag);
}
}
//internal scripts
$code .= "<script type=\"text/javascript\">\n";
...
Und die .htaccess anpassung:
QUELLTEXT
#
# Css/Js Rewrite
#
RewriteRule ^cms/css/(.*\.css) combine.php?type=css&files=$1
RewriteRule ^cms/js/(.*\.js) combine.php?type=javascript&files=$1
Habe damit >50% Ladezeit gesparrt
Gruß