如何动态prerender页面?
这几天在看预加载的东东,有dns-prefetch,preconnect,prefetch,prerender。目前对最后一个prerender有兴趣,可以预先加载整个页面(相当于后台隐藏预添加一个tab)。
设想是这么做,在一个页面中,当鼠标指向一个标签的时候,就在当前页面<head>添加预加载
<link rel="prerender" href="//www.example.com/example.html">
当鼠标离开的时候就把这个预加载标签删除了:
$(document).ready(function() {
$("a[href!='']").each(function() {
$(this).on('mouseenter', function(event) {
var pre_url = $(this).attr("href");
$("link").each(function() {
if (!($(this)[href=pre_url])) {
$("head").append('<link rel="prerender" href="' + pre_url + '">');
}
});
});
$(this).on('mouseleave', function(event) {
var pre_url = $(this).attr("href");
$("link").each(function() {
if (!($(this)[href=pre_url])) {
$("head").remove('<link rel="prerender" href="' + pre_url + '">');
}
});
});
});
});
发现预加载的偏多了,而且移出鼠标并不能删除那个预加载
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的
if (!($(this)[href=pre_url])) {}
这个我没看懂是什么意思,不是这样判断的$('#a').remove();
是直接删除id=a
你的用法不对$("a[href!='']").each(function() {})
多余了$("a[href!='']").on('mouseenter')
会给所有选择到的元素添加事件