是否可以立即从AJAX加载内容?
例如,在加载时我使用$.getJSON
:
$(function(){
$.getJSON('posts.php',function(data){
data.posts.forEach(function(post){
// load info, append divs
})
})
})
然而,有一点延迟(可能是1秒),其中divs
没有附加在页面加载上。只有使用PHP on-load
?
答案 0 :(得分:0)
这更像是一个用户体验问题。你能做的就是让它感知到#34;瞬间。例如,它是否有Ajax加载器?准备好后你能淡出内容吗?你可以做很多技巧来实现它"即时"。我同意,你不能随意将内容弹出到页面中。这可能吓到人们。
答案 1 :(得分:0)
Ajax调用的速度是Ajax调用的速度。这是对服务器的往返,所以一旦你在服务器上进行了那么快的往返,就没有别的办法了,因为剩下的只是服务器和客户端浏览器之间传输的速度。所以,总会有某种延迟。
你可以做一些事情来解决这个问题:
您可以立即在<head>
标记中发送ajax调用,而不是等待页面加载。结果返回时,您只需存储结果。然后,当页面加载完成后,立即插入结果。
您可以隐藏主要内容,运行ajax调用,插入ajax结果,然后显示您的内容。这将使它全部“出现”在屏幕上。
第一个选项如下:
<head>
<script src="jquery.min.js"></script>
<script>
$.when($.getJSON('posts.php'), jQuery.ready).then(function(result) {
// result[0] is the result from the getJSON call
// and the DOM is ready so you can insert the content here
});
</script>
</head>
这会在页面开始加载时立即启动ajax调用,以便尽快启动它。然后,当完成ajax调用并且DOM准备就绪时,您可以插入内容。