js和css按需加载

时间:2009-11-24 02:20:42

标签: php javascript css kohana

我对按需加载的概念感到困惑

我看到了这个博客post,并想知道我是否可以使用ff对php做同样的事情。的方法:

  1. 检查当前网址
  2. 根据当前网址提供css或js
  3. 可以在Kohana中这样做。

    if (uri::segment(1) == 'search') // check current url
    echo html::stylesheet('search.css'); // serve stylesheet
    echo html::script('search.js'); // serve script
    endif;
    

    还是我认为这个想法错了?

    除了站点范围的forms.css和layout.css之外,还有一个问题就是为每个页面提供一个css文件

2 个答案:

答案 0 :(得分:1)

以下是使用REQUEST_URI的HTML和PHP的示例。变量将保存您所在的页面,您可能希望对其进行一些解析以获得具有斜杠等的确切页面,它通常是从根目录到文档的相对路径。

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Demo</title>
<?php

switch($_SERVER['REQUEST_URI']) {
    case "/home.php":
        echo '<link type="text/css" href="home.css" rel="stylesheet" />';
        echo '<script type="text/javascript" src="js/home.js"></script>';
    break;

    case "/about.php":
        echo '<link type="text/css" href="about.css" rel="stylesheet" />';
        echo '<script type="text/javascript" src="js/about.js"></script>';
    break;

    case "/contact.php":
        echo '<link type="text/css" href="contact.css" rel="stylesheet" />';
        echo '<script type="text/javascript" src="js/contact.js"></script>';
    break;

    default :
        echo '<link type="text/css" href="default.css" rel="stylesheet" />';
        echo '<script type="text/javascript" src="js/default.js"></script>';
    break;
}
?>
</head>

<body>
My Page
</body>
</html>

答案 1 :(得分:1)

你可以使用你的方法。 css文件更好地在头部提供,因此您可以将您的条件放在站点范围的模板中。

对于javascript,应该在html的底部提供,您只需将标记直接放在application / view / your_action.php中,而无需使用任何基于网址的条件。

关于

  如果有一个CSS,那就没关系了   除了每个页面的文件   从站点范围的forms.css和   layout.css中

嗯,你可以这样做,但请记住,这将为用户访问的每个新页面生成一个额外的请求(对于css文件)。如果性能至关重要,你最好提供一个独特的压缩css。