我想做一個在線用戶內容刷新它自我和每次調用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代碼中有一些依賴,我不能在另一個文件中運行此函數。
但$ .get()或$ .post()方法也會調用.php文件並返回所有頁面。 – Ercan 2010-11-18 21:04:58
您可以發出每個請求,例如'?r = ajax',並使PHP只發送想要的數據,而不是整個頁面。 – 2010-11-18 21:08:23