yii-ext/client-script

此包最新版本(dev-master)没有可用的许可证信息。

扩展客户端脚本

安装: 8

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 16

类型:yii-extension

dev-master 2014-06-11 11:39 UTC

This package is not auto-updated.

Last update: 2024-09-10 01:22:53 UTC


README

Yii 1.1.x 或以上

描述

EClientScript(Yii的CClientScript扩展)

这是一个为Yii框架优化的客户端脚本管理器,可以压缩和合并CSS/JS文件。

它将自动检测文件内容的更改(基于修改时间),并相应地生成唯一的文件名。

这将通过将多个资源文件合并为单个(或多个)文件来减少对资源文件的HTTP调用。

自1.5版本起,也支持在IE浏览器中条件加载js/css文件,请参阅示例代码。

源代码托管在github上

https://github.com/muayyad-alsadi/yii-EClientScript

####CSS文件:CSS文件根据其media属性合并,文件中具有相对路径的背景图像也可以正确显示。

####脚本文件:脚本文件根据其位置合并,如果您使用'CClientScript::POS_HEAD',则页面上的所有脚本文件将合并为单个文件。

如果您使用'CClientScript::POS_HEAD'和'CClientScript::POS_END',例如,则每个页面请求将有两个文件,因为这些资源位于不同的位置。

####文件优化(实验性,@since: 1.1)CssMin用于优化合并的CSS文件。您可以通过设置组件的'optmizeCssFiles'属性来启用此功能。JSMinPlus用于优化合并的脚本文件。您可以通过设置组件的'optmizeScriptFiles'属性来启用此功能。

用法

  1. 使用此扩展非常简单,只需将以下代码添加到应用程序配置下的components数组中

      'clientScript' => array(
        'class' => 'application.vendors.yii-EClientScript.EClientScript',
        'combineScriptFiles' => !YII_DEBUG, // By default this is set to true, set this to true if you'd like to combine the script files
        'combineCssFiles' => !YII_DEBUG, // By default this is set to true, set this to true if you'd like to combine the css files
        'optimizeScriptFiles' => !YII_DEBUG,	// @since: 1.1
        'optimizeCssFiles' => !YII_DEBUG, // @since: 1.1
        'optimizeInlineScript' => false, // @since: 1.6, This may case response slower
        'optimizeInlineCss' => false, // @since: 1.6, This may case response slower
      ),

    然后您可以使用常规的'registerScriptFile' & 'registerCssFile'方法,文件将自动合并或优化。

  2. 用于条件加载IE浏览器的js/css文件,您只需指定media属性。

    $cs = Yii::app()->clientScript;
    
    // result to: <!--[if lt IE 9]><script src="/js/html5.js"></script><![endif]-->
    $cs->registerScriptFile('/js/html5.js', CClientScript::POS_HEAD, array('media' => 'lt IE 9'));
    
    // result to: <!--[if lte IE 6]><link rel="stylesheet" type="text/css" href="bootstrap/css/ie.css" /><![endif]-->
    $cs->registerCssFile('/css/ie.css', 'lte IE 6');

注意

如果您注册了一些不在Web应用程序根目录中的外部资源文件,它们将保持不变,不会合并。压缩或优化是实验性功能,请谨慎使用(@since: 1.1)

更改日志

2013年8月13日

  • 新版本号1.6
  • 修复合并压缩脚本时的错误,它们可能在末尾缺少分号
  • 添加了对优化内联CSS/JS代码的支持

2013年8月2日

  • 修复了非合并CSS文件的加载顺序。

2013年3月29日

  • 新版本号1.5
  • 与registerScript和registerScriptFile的第三个参数兼容
  • 添加了对IE中条件加载js/css文件的支持。
  • 在注册带有相对路径的脚本/css文件时,在当前请求的base url前添加前缀

2013年3月27日(由Muayyad Alsadi编写)

  • 新版本号1.4
  • 更新JSMinPlus, CssMin
  • 使用更强的哈希值对文件名进行哈希处理
  • 考虑修改时间来计算哈希
  • 默认启用所有功能

2010年12月6日

  • 修复了以@charset "xxx"开始的CSS文件的问题,它应在文件的第一行,而不是重复。
  • 支持主题资源文件。

2010年11月23日

  • 跳过包含 .pack. 的文件的最小化处理。
  • 将最后修改时间添加到合并文件中作为QUERY_STRING,以避免文件更新时浏览器缓存未正确刷新。

2010年11月6日

  • 新版本号 1.3
  • 不重复最小化已最小化的JavaScript代码,这些代码的文件名包含 .min.
  • 修复了 getRelativeUrl() 平台兼容性问题。(感谢 Troto)

已知问题

当某些资源文件无法合并,并且它们严格依赖于加载顺序时,可能存在一些问题。

问题报告

欢迎报告问题和评论,请将问题报告到 https://github.com/muayyad-alsadi/yii-EClientScript/issues