2010-11-18 21 views
2

Kendi kendini yenileyen ve her seferinde php işlevini çağıran çevrimiçi bir kullanıcı içeriği oluşturmaya çalışıyorum. Aynı sayfada yenileme div için .load() nasıl kullanılır?

Ben

<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> 

Bu iyi çalışır kullandı. Ama .load() işlevi bence tüm sayfanın tamamını yükler ve sonra .onlineFriends'ı çağırır. Konsolda firebug ile görebiliyorum. tüm sayfa kaynak kodunu GET cevabı olarak döndürür. Sorum şu ki yavaşlayacak mı? Çünkü bu yöntemi diğer div içerikleri için 5 kez kullanacağım ve her seferinde her işlev tam sayfa yükleyecektir.

Ayrıca ayrı bir .php dosyası oluşturmaya çalıştım ancak php kodunda bazı bağımlılıklar var ve bu işlevi başka bir dosyada çalıştıramıyorum.

cevap

2

Sayfanıza herhangi bir istek tam koduyla sonuçlanacaktır. Belirli bir GET veya POST verisi mevcut olduğunda sadece sayfanın aranan kısmını göndermek için php'de belirtebilir ve bunları almak için $.get() veya $.post()'u kullanabilirsiniz.

Aynı sayfada bu yöntemi 5 kez

kullanacak diye mi? Ardından geri arama işlevi sırasında bunları $.get() ve $.post()data'dan değiştirmek daha iyidir.

+0

ancak $ .get() veya $ .post() yöntemleri de .php dosyasını çağırır ve tüm sayfayı döndürür. – Ercan

+0

Her isteği, örneğin, '? R = ajax' olarak yapabilirsiniz ve PHP'yi tüm sayfayı değil sadece istenen verileri gönderebilirsiniz. –

0

indeks kullanımı morina java/ajax ve kullanım jquery-min

<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 }); 

sizin div html

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

sizin friends.php kullanımı

kullanmak friends.php ve sayfadaki diğer sayfa oluştur
<?php include"your bd here" $jab = $_GET['var']; 
'select bd' 
echo $resultyourneed['f_id'] ?> 
İlgili konular