预加载样式表而不在页面上执行它
Preload stylesheet without executing it on the page
是否有任何方法可以在不在页面上执行样式表的情况下预加载样式表,以便通过javascript或jQuery将其存储在缓存中?
我知道这是一个奇怪的请求,但为什么我想这样做:
我有桌面、平板电脑和手机的样式表。我只想为正在使用的设备加载必要的规则。
我知道有这个选项:
<link rel="stylesheet" media="all and (max-width: 960px) and (min-width: 481px)" href="tablet.css" />
<link rel="stylesheet" media="all and (max-width: 480px)" href="phone.css" />
然而,我也想支持IE8,并且已经在使用JavaScript以各种屏幕大小操纵页面上的其他元素,所以我可以使用JS解决方案(可能会包含Chris Coyier的一些jQuery解决方案)。
我想缓存CSS,这样,如果用户在桌面上,或者能够将浏览器窗口重新调整到另一个设备范围,他们就不需要等待在该断点加载样式表。
用户是否可以重新调整屏幕大小已经检测到了,所以我不需要解决方案-我只需要知道是否可以使用jQuery或JavaScript缓存css样式表,而不会实际影响页面布局,如果可以,如何
感谢您的帮助
function get_css(url) {
var ss = $.ajax({
type: 'GET',
dataType: 'text',
url: url,
async: false
}).responseText;
return ss;
}
function add_css(css, id) {
$("head").append('<style id="'+id+'" type="text/css">'+css+'</style>');
}
var desktop = get_css('desktop_styles.css');
var mobile = get_css('mobile_styles.css');
// Determine breakpoint
add_css(desktop, 'desktop_styles');
// Determine breakpoint
add_css(mobile, 'mobile_styles');
你绝对可以做到在click事件上或在您希望加载它时执行此操作。例如,如果您在jquery中检查设备,则在检查设备以指定应加载哪个元素后执行该操作。
$( "#header" ).child( "<link rel='"stylesheet'" media='"all and (max-width: 960px) and (min-width: 481px)'" href='"tablet.css'" />" );
您是否想过尝试另一种方法,例如在样式表上进行媒体查询。
<link rel='stylesheet' media='screen and (max-width: 700px)' href='css/small.css' />
<link rel='stylesheet' media='screen and (min-width: 701px) and (max-width: 900px)' href='css/medium.css' />
<link rel='stylesheet' media='screen and (min-width: 901px)' href='css/large.css' />
来源:http://css-tricks.com/resolution-specific-stylesheets/
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何在从浏览缓存加载页面时执行javascript
- Jquery:代码在rails中的页面加载时未执行
- 如何准确执行加载脚本&退出弹出窗口
- 页面在我的javascript执行后重新加载,我不希望它这样做
- 加载服务器端渲染的React组件后执行脚本
- jQuery-在页面加载时执行一个函数
- ajax加载了内容,脚本没有执行
- 如何在加载完整页面后严格执行javascript代码
- 在动态加载的对话框中执行Javascript
- Dojo AMD加载程序执行定义具有空/缺失依赖项的回调
- 通过AJAX加载页面并执行javascript和CSS
- 在外部JS执行后加载JavaScript
- 如何在Ajax加载新内容时停止JavaScript执行
- Chrome扩展:加载窗口后执行脚本
- LABjs错误:脚本总是使用.script()来执行加载的序列
- 执行加载更多函数时的LIMIT子句
- 动态加载的SVG;似乎不再执行加载函数了
- ie7不使用jquery执行加载的脚本