JavaScript-预呈现另一个页面

JavaScript-预呈现另一个页面,javascript,html,performance,Javascript,Html,Performance,我正在尝试制作一个简单的图库页面。网站总是会在按下“下一步”后重新加载,我想为下一张幻灯片做一些预渲染(以获得更好的性能和更快的加载)。 目前,我正在使用HTML5中针对Chrome和FireFox的预回迁/预渲染选项: <!DOCTYPE html> <html> <head> <link rel="prefetch" href="index2.html"> <link rel="prerender"

我正在尝试制作一个简单的图库页面。网站总是会在按下“下一步”后重新加载,我想为下一张幻灯片做一些预渲染(以获得更好的性能和更快的加载)。 目前,我正在使用HTML5中针对Chrome和FireFox的预回迁/预渲染选项:

<!DOCTYPE html>
<html>
    <head>
        <link rel="prefetch" href="index2.html">
        <link rel="prerender" href="index2.html">
    </head>

    <body>
        <img src="big_big_buck_bunny.jpg"/>
        <a href="index2.html">Next</a>
    </body>
</html>


是否有其他方法可以缓存/预呈现下一页(在本例中为index2.html)?例如使用JavaScript?我问这个问题是因为我想在Opera 12和IE(8/9)上也进行预渲染。

也许可以使用AJAX。在jquery中存在。load()方法()


这里有一个示例

如果您要导航到一个新页面,则无法预缓存html。这就是Ajax的用途


您可以在html中使用Ajax,将文档正文设置为新的html。但是,如果用户重新加载页面,它将位于错误的位置,除非您设置#!在URL中。IE8没有很多好的选择

你看不到吗?只需预加载图像,页面本身就不需要花费任何时间来构建……是吗?

你可以通过在屏幕上放置指向url的iFrame来加快渲染速度。因为有广告,我无法使用iFrame加载页面。iFrame加载所有内容(还有js和css),因此即使iFrame被隐藏(用户也看不到),它也会显示广告。这是缺少的
preventDefault()
。它并不等同于预呈现,因为它只获取HTML页面,而不获取链接到的资源。此外,它只更改容器中的HTML,不清除事件侦听器或运行任何等待加载DOMContentLoaded的Javascript。
$('#next').click(function () {    
    $('#container').load('http://fiddle.jshell.net/webdevem/JfcJp/show/');
});

$('#prev').click(function () {
    $('#container').load('http://fiddle.jshell.net/webdevem/JfcJp/show/ #specialContent');
});