2010-11-18 68 views
2

我想做一个在线用户内容刷新它自我和每次调用PHP函数。如何在同一页面使用.load()来刷新div?

我用

<div class="onlineFriends"> 
<?php 
$members = find_online_friends($_SESSION['id']); 

foreach($members as $member):?> 
<div class="user" href=<?php echo ($member['f_id']); ?> rel="popup_name" > 

<img src=<?php 
$avatars = find_avatar($member['f_id']); 
foreach($avatars as $avatar) 

echo ($avatar['src']) ?> 
/> 
</div> 
<?php endforeach; ?> 
</div> 



<script> 
$(function(){ 
    var refreshId = setInterval(function() { 
$('.onlineFriends ').load("# .onlineFriends ").fadeOut("slow", function() { 
$(this).fadeIn("slow"); 

}); 
}, 50000); 

}); 

</script> 

这工作不错。但.load()函数我认为首先加载整个页面,然后调用.onlineFriends。我可以在控制台上看到它与萤火虫。它将所有页面源代码作为GET答案返回。我的问题是会减慢速度?因为我将对其他div内容使用此方法5次,并且每次每个函数都会加载整个页面。

另外我试图创建单独的.php文件,但我在php代码中有一些依赖,我不能在另一个文件中运行此函数。

回答

2

对你的页面的任何请求都会导致它的完整代码。您可以在php中指定当特定的GET或POST数据存在时仅发送页面的有用部分,并使用$.get()$.post()来获取它们。

因为我会用这种方法,5次

在同一页面上?那么最好在回调函数中将它们替换为$.get()$.post()data之一。

+0

但$ .get()或$ .post()方法也会调用.php文件并返回所有页面。 – Ercan 2010-11-18 21:04:58

+0

您可以发出每个请求,例如'?r = ajax',并使PHP只发送想要的数据,而不是整个页面。 – 2010-11-18 21:08:23

0

创建其他页面friends.php 并在页面索引使用鳕鱼的Java/Ajax和使用jQuery分钟

<script src="js/jquery-1.10.1.min.js"></script> 

$(document).ready(function() { 

$("#center").load("friends.php?var=<?php echo $member['f_id']; ?>"); 
var refreshId = setInterval(function() { 

$("#center").load('friends.php?var=<?php echo $member['f_id']; ?>');}, 9000); 
$.ajaxSetup({ cache: false }); 

您的DIV HTML中使用

<div class="center"></div> 

您friends.php使用

<?php include"your bd here" $jab = $_GET['var']; 
'select bd' 
echo $resultyourneed['f_id'] ?> 
相关问题