您的位置:首页 > Web前端 > CSS

CSS 样式异步加载

2016-06-23 08:39 726 查看
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('加载成功...');
});
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: