Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

link rel prefetch #225

Open
Raynos opened this issue Dec 3, 2012 · 10 comments
Open

link rel prefetch #225

Raynos opened this issue Dec 3, 2012 · 10 comments

Comments

@Raynos
Copy link
Contributor

Raynos commented Dec 3, 2012

  • What is browser support like?
  • What recommendation should we give?
  • How does it even work?

Its surprisingly hard to congruent information about it. Half of it is saying "its cool use it" and the other half says "how to break your web pages. use prefetch"

@nimbupani
Copy link
Member

HTML5 Boilerplate talks about prefetch a bit in the docs

@Raynos
Copy link
Contributor Author

Raynos commented Dec 6, 2012

Thats just DNS prefetching and not link prefetching

@nimbupani
Copy link
Member

oops sorry. I thought it also talked about link prefetching too.

@passcod
Copy link

passcod commented Feb 19, 2013

I wrote a StackOverflow answer for this a while back… and it's pretty comprehensive. tl;dr:

  • Link prefetching is spec'd.
  • Firefox supports it from 3.5 but only on <link>, not <a> nor <area>.
  • Chrome support is unclear.
  • IE supports the attribute but does the wrong thing (DNS prefetching instead).
  • Prerendering is not spec'd, only supported on Chrome, still marked as experimental.
  • DNS prefetching is not spec'd (afaics), but is supported on every browser except IE (and Opera?).

I would recommend to avoid it, as it is too fragmented and isn't used enough / doesn't seem to offer much advantages (browsers already do optimisation automatically anyway). OTOH, using rel="prefetch" wouldn't do anything bad per se.

@igrigorik
Copy link

@passcod's answer is basically there. A few small corrections:

  • Chrome supports rel=prefetch, and it works great
  • Chrome also supports rel=subresource, rel=dns-prefetch, and rel=prerender
  • DNS prefetching does work in IE, except they call it rel=prefetch

There is no reason to avoid it. It's a browser hint, and it's not going to harm you: if the browser recognizes it, it may use it, if it doesn't, then no harm done.

Details on Chrome implementation:

@nimbupani
Copy link
Member

@Raynos can you combine @passcod & @igrigorik comments to write a post on link rel prefetch?

@cvrebert
Copy link
Contributor

cvrebert commented Feb 4, 2015

@cvrebert
Copy link
Contributor

@passcod
Copy link

passcod commented Sep 12, 2015

I updated my SO answer today: http://stackoverflow.com/questions/7830675/how-can-i-preload-a-page-using-html5/7830732#7830732

TL;DR: Prefetch has very good support, DNS Prefetch has near-universal support, the other three (preconnect, prerender, lazyload) have varying levels of support. I'd recommend "use it" for prefetch and dns, "use it but be aware browser support isn't fully there yet" for preconnect and prerender, and probably "don't use" or at least "don't rely on it" for lazyload (it's a Microsoft extension).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants