jquery 预加载
jQuery 预加载的实现方法
预加载(Preloading)是一种优化技术,用于提前加载资源(如图片、脚本等),确保用户后续访问时资源已就绪。jQuery 可以实现多种预加载方式。
图片预加载
通过创建隐藏的 Image 对象加载图片资源,利用 jQuery 简化 DOM 操作:
$.preloadImages = function() {
for (var i = 0; i < arguments.length; i++) {
$('<img>').attr('src', arguments[i]);
}
};
// 调用示例
$.preloadImages('image1.jpg', 'image2.png', 'image3.gif');
延迟加载与回调
结合 jQuery 的 Deferred 对象实现异步加载控制:
function preloadAssets(urls) {
var deferreds = [];
$.each(urls, function(index, url) {
deferreds.push(
$.Deferred(function(deferred) {
var img = new Image();
img.onload = deferred.resolve;
img.onerror = deferred.reject;
img.src = url;
}).promise()
);
});
return $.when.apply($, deferreds);
}
// 调用示例
preloadAssets(['img1.jpg', 'img2.jpg']).done(function() {
console.log('所有资源加载完成');
});
动态脚本预加载
通过 jQuery 的 $.getScript() 预加载 JavaScript 文件:
$.getScript('plugin.js').done(function() {
console.log('脚本加载完成');
});
CSS 预加载
使用 jQuery 动态创建 <link> 标签预加载 CSS:

$('<link>', {
rel: 'stylesheet',
type: 'text/css',
href: 'styles.css'
}).appendTo('head');
注意事项
- 预加载过多资源可能导致带宽浪费,需根据实际需求平衡。
- 移动端网络环境较差时,谨慎使用预加载。
- 可通过浏览器开发者工具的 Network 面板验证预加载效果。
以上方法可根据具体场景组合使用,例如同时预加载图片和脚本后执行回调函数。






