ASP.NET,MVC 3,C#网站,预加载链接页面

时间:2012-11-15 14:40:41

标签: c# asp.net-mvc

对于ASP.NET,MVC 3,C#网站,其主页包含指向其他页面的链接 -

在请求主页并将其加载到浏览器之后,是否有一种方法可以“预加载”链接页面,以便立即呈现它们而无需返回服务器?

示例 - 假设我卖的是10种产品。每个产品都将在主页上链接自己的“产品详细信息”页面。当有人进入主页时,我想在后台“预加载”一个或多个“产品详细信息”页面,因此当点击“产品详细信息”链接时,页面将立即可用。

2 个答案:

答案 0 :(得分:1)

你想要的有点奇怪。您可以随时通过AJAX加载这些页面,然后处理相应超链接的点击并用您拥有的东西替换整个DOM,但是值得付出努力和维护吗?也许PJAX会对此有所帮助吗?

答案 1 :(得分:0)

如果你真的想做某种并行加载,你可以拥有一个在页面上没有实际显示但保留有效内容的元素。类似的东西:

<div id="parallel_load" style="position:absolute;left: -1000px;width: 100px;></div>

然后你可以创建一个你想要的东西的队列。由于它几乎完全是您想要预加载的图像,因此您可以只使用一个列表,从服务中一次请求一个图像,创建一个新元素并将其插入到此div中。这将迫使浏览器在用户正在做其他事情时在后台加载新图像...点击,登录。

$(LoadNextImage(0));

function LoadNextImage(index)
{
    // do ajax call here to get the url to the image and id
    // use index to keep track of what images have loaded maybe

    var image = $('<img id="' + id + '"');
    image.attr('src', urlFromAjax);
    image.appendTo('#parallel_load');

    // moreImages would be some response from the server that
    // says you're not done yet possibly
    if (moreImages) 
        setTimeout(LoadNextImage, 500);
}