CSS 样式异步加载

来源:互联网 发布:java hashset treeset 编辑:程序博客网 时间:2024/05/21 09:29

1.方法1,使用link标签的media属性(注:测试只有高版本的Google浏览器可以,FF,IE都失败)

触发异步样式下载的诀窍是使用一个 <link> 元素,并 为media 属性设置一个不可用的值 (我用的是 media=”none”, 不过其它的任何值也是可以的)。当一个媒体查询的结果值计算出来是 false 的时候,浏览器仍然会下载样式表,但是不会在渲染页面之前等待样式表的资源可用。

<link rel="stylesheet" href="css.css" media="none">
样式表一下载好,media 属性就必须被设置一个可用的值,以便样式规则能被应用到 html 文档中onload 事件就可以用来将 media 属性切换到all:

<link rel="stylesheet" href="css.css" media="none" onload="if(media!='all')media='all'">

使用实例:

<link href="~/Content/font1.css" rel="stylesheet" media="none" id="fontLink" />
$('#fontLink').load(function () {    $(this).attr('media', 'all');    //地址,数据解析    handleUrlData();});

2.方法2.延迟添加link标签到页面,这种方式比较兼容

可以使用同样原理,延迟加载JS

$(window).load(function () {    //异步延迟加载样式    var link = $('<link />');    link.attr('href', '/Content/font1.css');    link.attr('rel', 'stylesheet');    link.appendTo($('head'));    link.load(function () {        console.info('加载成功...');    });});





0 0
原创粉丝点击