zoukankan      html  css  js  c++  java
  • js组件的css加载方案

    组件开发时,通常会有配有一个css文件资源。
    但是在实用时,为了减少请求数,这个css有可能被合并在页面的css中。
    那么,写组件时是否需加要载这个css呢?

    应对策略:
    组件的css前加一个.js_xcomponent_css_loaded的规则,来标识该组件对应的css是否已加载。
    而在组件的js里,作一个判断,如果css未预加载(包括独立预加载、或被包含在其它的css文件中一起预加载),则进行加载。
    典型代码如下:
    <html>
    <head>
    <link hrefffff="dddd/panel.css" rel="stylesheet" type="text/css"><!-- 这里没引用 -->
    <style>
    .js_panel_css_loaded
    {width:30px;display:none;}/*用".js_panel_css_loaded"来表示这里已经有了panel对应的css了*/
    .js_panel
    {/*更多css*/}
    </style>
    </head>
    <body>
    </body>
    <SCRIPT LANGUAGE="JavaScript" remark="panel组件里与css相关代码的示意">
    (
    function() {
    /**
    * 获得element对象当前的样式
    * @method getCurrentStyle
    * @param {element|string|wrap} el id,Element实例或wrap
    * @param {string} attribute 样式名
    * @return {string}
    */
    var getCurrentStyle = function(el, attribute) {
    if(el.currentStyle) {
    return el.currentStyle[attribute];
    }
    else {
    var style = el.ownerDocument.defaultView.getComputedStyle(el, null);
    return style ? style.getPropertyValue(attribute) : null;
    }
    };

    var el=document.createElement('div');
    document.body.appendChild(el);
    el.className
    ='js_panel_css_loaded';
    if(getCurrentStyle(el, 'width') == '30px') alert('panel_css已经加载过了,不需再加载');
    else alert('需要加载panel_css');
    document.body.removeChild(el);
    }());
    </SCRIPT>
    </html>
  • 相关阅读:
    B-tree/B+tree/B*tree
    java拆装箱(转)
    C语言身份证信息查询系统(修改版)
    UC编程:字符读取与行读取
    UC编程:通过fwrite()和write()比较标准库函数和系统调用的速度
    UC编程:输入输出重定向(系统调用)
    UC编程:输入输出重定向(标准IO)
    UC编程:环境变量的查询与修改
    Perl基础(1)chop与chomp的区别
    假期“实习”20天生存实录
  • 原文地址:https://www.cnblogs.com/jkisjk/p/js_xcomponent_css_loaded.html
Copyright © 2011-2022 走看看