对于ASP.NET,MVC 3,C#网站,其主页包含指向其他页面的链接 -
在请求主页并将其加载到浏览器之后,是否有一种方法可以“预加载”链接页面,以便立即呈现它们而无需返回服务器?
示例 - 假设我卖的是10种产品。每个产品都将在主页上链接自己的“产品详细信息”页面。当有人进入主页时,我想在后台“预加载”一个或多个“产品详细信息”页面,因此当点击“产品详细信息”链接时,页面将立即可用。
答案 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);
}