【发布时间】:2023-03-08 13:24:01
【问题描述】:
我目前正在尝试使用以下代码(req. jQuery)预取页面以提高我们网站的感知性能。
只有 0.5% 的访问者使用拨号,我不包括查询字符串(过去的美好时光)、外部链接 (http) 和 pdf(我们的大文件就是这种格式)。 在生产站点上,我没有考虑过预取时还有哪些其他可能的负面情况?
<script type="text/javascript">
$(document).ready(function() {
$("a").each(
function(){
$(this).bind ("mouseover", function() {
var href=$(this).attr('href');
if (
(href.indexOf('?') == -1)&&
(href.indexOf('http:') ==-1)&&
($(this).hasClass('nopreload') == false)&&
(href.indexOf('.pdf') == -1)
) {
$.ajax({ url:href, cache:true, dataType:"text" });
}
});
$(this).bind ("mousedown", function(btn) {
if (btn.which==1) {
var href=$(this).attr('href');
if ($(this).hasClass('nopreload') == false) {
window.location.href = href;
return false;
}
}
});
});
});
</script>
对于某些链接,当将鼠标悬停在它上面时会预加载页面,并且在鼠标按下时会导航(而不是在释放按钮之后)。
【问题讨论】:
-
上面的代码绕过了链接上的任何内联javascript,即。弹出窗口。您可以为这些链接添加一个类而不是预加载。
标签: javascript jquery prefetch