有没有方法,JavaScript脚本或任何可以允许预加载页面中的超链接?例如,我希望当用户来到http://ahostel.lt/并且页面完全加载时,脚本将开始在导航中预加载其他页面(预订,地图,设施,环视,[...])。所以当用户点击任何超链接时,页面会立即加载。如何做到这一点?preload =“true”超链接
回答
虽然目前只有Firefox支持,但HTML5规范中实际上已经规定了这一点。
<link rel="next" href="page2.html">
只是把它作为一个非JavaScript的替代品扔给你。
我想你还需要指明预取属性http://browserspy.dk/prefetch.php。 – Gajus 2010-07-19 22:57:10
你可以做这样的事情:
$(function() {
$('a').each(function() {
new Image().src = $(this).attr('href'); // or just this.href
});
});
他们不是图像,但浏览器并不知道。您可能要慢下来一点,以免呛连接太多:
$(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();
});
编辑 — @Adam使有关“危险”的链接来获取一个很好的点。将某些链接标记为“noPrefetch”(作为类或某物)可能会更好,或者也可以只将预取链接标记为“prefetch”类。
还没有尝试过,但基于this blog post,你可以做到以下几点:
$("a").each(function(){
$.ajax({ url:$(this).attr("href"), cache:true, dataType:"text" });
});
你应该小心但如果你有一个像注销用户可以得到注销链接。 See Wikipedia for more problems with prefetching。
将此与离线存储概念相结合,您就有赢家。您可以预取所有主要导航页面,并且这些页面的每个着陆页都可以预取下一个导航页面等,并放置在离线存储中(window.localStorage或window.sessionStorage)。对于JSON等来说会很好。你可以比缓存更好地控制需要过期或不需要的时间,因为你的密钥可能包含时间戳指示符。可能更适合于不需要每次加载产品目录的电子商务网站。例如,您可以将JSON放入其中,并立即恢复原状。
我不确定离线存储是否良好,或者不考虑缓存。思考?
- 1. asp:超链接显示无超链接
- 2. XLConnect超链接
- 3. 从超链接
- 4. 超链接
- 5. D3plus超链接
- 6. 超链接
- 7. iPhone超链接
- 8. GWT:超链接
- 9. 超级链接
- 10. 的超链接
- 11. 超链接
- 12. Excel超链接
- 13. GridView和超链接
- 14. Python硒超链接
- 15. VBA宏 - 超链接
- 16. 超链接图像
- 17. 制作超链接
- 18. 超链接图像
- 19. WPF超链接子
- 20. iphone uiwebview超链接
- 21. 超链接在JSP
- 22. 超链接在JLabel
- 23. 回传超链接
- 24. 拖延超链接
- 25. jQuery的超链接
- 26. 禁用超链接
- 27. mod_rewrite和超链接
- 28. Django的:超链接
- 29. ListBoxItem和超链接
- 30. 超链接样式
页面是否在同一个域上? – 2010-07-19 22:01:44
是的。假设我们正在谈论http://ahostel.lt – Gajus 2010-07-19 22:03:26
[预加载HTML网页或非Flash网络应用程序?](http://stackoverflow.com/questions/3275056/preloading-of-html-web -page-or-flash-web-applications) – Wrikken 2010-07-19 22:07:46