2010-11-18 19 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'] ?> 
相關問題