2013-06-12 299 views
1

我已经为iPad创建JavaScript应用程序,其中所有内容都基于Web。所有页面都有非常多的内容,并且有很多链接。所以当我点击链接时,页面显示(加载)内容时会显示白色区域。当我在加载下一页时单击链接时,我希望它保留在前一页上。如果它完全加载,我希望它显示下一页。我该怎么做?在页面完全加载后重定向到链接页面

+0

也许你应该考虑不要在点击后加载它。最好猜测下一个链接将被预取的链接。谷歌有点用于页面预取。第二个是减少页面大小,并使用Ajax逐个加载。等待几秒钟,直到页面加载将反弹很多用户... – abimelex

回答

3

据我所知,实现这一目标的唯一方法是使用AJAX加载您的内容。也就是说,不是为每个链接重新加载整个页面,只需根据点击链接来重新加载部分内容即可。

比方说,你的页面有这样的容器:

<div id="content">...</div> 

然后,对于每一个环节(符合一定的条件,如果你不希望它发生的所有的链接),你执行一个AJAX要求类似

$("a").click(function() { 
    $this = $(this); 
    var data = {}; // Put additional parameters here 
    $.get($this.attr("href"), data , function(response) { 
     $("#content").html(response); 
    } 
} 

正如@rofavadeka提到,你也可以修改URL,以便它反映位置的变化,使用类似:

window.history.pushState("object or string", "Title", "/new-url"); 
+1

只是回答完全相同的事情。我认为唯一的解决方案。创建一个ajax请求(例如整个页面),在完全加载时使用javascript将新内容粘贴到(例如body)中,然后使用js-> window.history.pushState(“object or string”,“Title”, “/新网址”); – rofavadeka

+2

请注意,'pushState'不支持低于IE10的IE版本。但由于这是一个iPad的事情,没有问题。 – jdepypere

1

您考虑过使用jQuery Mobile吗?这是一个图书馆,具有您正在寻找的那些功能。

+0

问题是我已经使整个应用程序,我不能只是改变到jQuery –

相关问题