首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Preload=“真”超链接

Preload=“真”超链接
EN

Stack Overflow用户
提问于 2010-07-20 06:00:31
回答 3查看 683关注 0票数 1

有没有一种方法,javascript脚本或任何东西可以允许在页面中预加载超链接?例如,我希望当用户来到http://ahostel.lt/并且页面完全加载时,脚本将开始预加载导航中的其他页面(预订、地图、设施、环顾等)。因此,当用户点击任何一个超链接时,页面都会立即加载。如何做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-20 06:43:18

虽然目前只有火狐支持,但在HTML5规范中确实有这样的规定。

代码语言:javascript
运行
复制
<link rel="next" href="page2.html">

我只是把它作为非javascript的替代品抛给你。

票数 1
EN

Stack Overflow用户

发布于 2010-07-20 06:04:00

你可以这样做:

代码语言:javascript
运行
复制
$(function() {
  $('a').each(function() {
    new Image().src = $(this).attr('href'); // or just this.href
  });
});

它们不是图像,但浏览器不知道这一点。您可能希望稍微放慢速度,以免过多地阻塞连接:

代码语言:javascript
运行
复制
$(function() {
  var urls = $('a').map(function(_, a) { return a.href; }).get(0);
  var i = 0;
  function fetchOne() {
    if (i === urls.length) return;
    var img = new Image();
    img.load = fetchOne;
    img.src = urls[i++];
  };
  fetchOne();
});

edit - @Adam对fetch的“危险”链接提出了一个非常好的观点。将一些链接标记为"noPrefetch“(作为类或其他东西)可能会更好,或者只预取标记有”预取“类的链接。

票数 2
EN

Stack Overflow用户

发布于 2010-07-20 06:08:42

我没有尝试过,但基于this blog post,您可以执行以下操作:

代码语言:javascript
运行
复制
$("a").each(function(){
  $.ajax({ url:$(this).attr("href"), cache:true, dataType:"text" });
});

但是,如果你有像注销这样的链接,你应该小心,用户可能会被注销。See Wikipedia for more problems with prefetching

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3285434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档