|
来源:http://trac.seagullproject.org/wiki/Howto/JavaScriptAndCssImprovements CSS and Javascript 重新整理和优化
第一部分: CSS/Javascript 优化器还记得每个seagull主题(文件夹)中的style.php文件吗?我们开发一种新方法,这种方法可以“优化”Javascript和CSS文件。优化器位于”SGL_WEB_ROOT/optimizer.php”. 如何调用优化器:
$output->addCssFile('themes/theme/css/my.css') or
$output->addJavascriptFile('js/my.js')
<link rel="stylesheet" type="text/css"
href="{makeCssOptimizerLink()}" />
<script type="text/javascript" src="{makeJsOptimizerLink()}"></script>
这样就行了。 它是什么工作的:
o 如果末被修改, 它就直接让浏览器使用缓存
但是两边都会发生缓存的1).优化器确保浏览器在缓存存在时为相应的文件使用缓存.但是浏览器本身也会缓存整个optimizer link的内容,所以即使服务顺端的文件发生了变化浏览器却只会使用旧的缓存的内容,因为浏览器实在太酷了.要避免这个问题,我们为optimizer link添加了修正号,这样浏览器每次请求的是不一样的URL((不会使用缓存了),这样确保CSS/JS发生变化时被载入更新.注意:
最后,事实上优化器并没做任何优化.当然可以将它改进成动态压缩Javascript代码,gzip或其它的格式.CSS也一样,比如删除所有的无用的空格.但是这个特性应该是在开启或关闭功能实现后来实现,否则将无法调试,所以我们也就给你留了一些工作. 第二部分: Javascript我想你们大家都认为GL_WEB_ROOT/js有点乱,里面的函数有点多余.我们修改了.现在所有的Seagull Javascript文件要么放在模块的各个的js目录或者是SGL_WEB_ROOT/js/SGL.那里还有些基本的库文件,不过几乎没什么东西了,所以我们就开始发布(生成),如从我们的私人项目移植.注意:
第三部分: CSS在我看来,这是最大的改进.其实它最初被我们称作default2,没有人认为我必须做将两个步骤.首先我要说的是default主题的外观没有变化.它是完全一样的,只是CSS代码完全不一样了.想要了解新实现方法,请看http://www.contentwithstyle.co.uk/Articles/17/a-css-framework/.Mike Stenhouse就是那个我们把他的方法集成到seagull中的那个人.主要的观点是使用开发新的主题更加容易.我们使用模块来将CSS划分多个文件,每个文件做它自己的事情.默认的CSS文件列表如下:
同时我们在default2主题中提供了16中布局.目前默认的布局是layout-navtop-3col.css.如果你需要你可以创建自己的主题.
请注意,你并不需要对主模板做优修改.目前所有可用的布局的主模板都是一样的.进一步说,目前的master.html是专门为了对搜索引擎(SEO)和屏幕阅读器而特地设计的.
所就让它们从我们的页面读取最有用的东西吧.要为某个特定的action修改布局,只需在代码中添加下列几行: $output→masterLayout = 'layout-navtop-2col.css'; 不然的话SGL会使用默认的布局,一些需要注意的地方:
1)
服务器和浏览器
|