2010-11-18 8 views
2

私は自分自身をリフレッシュし、毎回php関数を呼び出すオンラインのユーザーコンテンツを作ろうとしています。同じページのリフレッシュdivに.load()を使用するにはどうすればよいですか?

私はこれは良い作品

<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

あなたのページへのリクエストはすべてフルコードになります。あなたは特定のGETまたはPOSTデータが存在するときにページの必要な部分だけを返すようにPHPで指定し、$.get()または$.post()を使って取得することができます。

私は、同じページ上では、この方法を5回

を使用しますので?その後、コールバック機能の間に$.get()$.post()dataのいずれかに置き換える方が良いでしょう。

+0

しかし、$ .get()または$ .post()メソッドも.phpファイルを呼び出し、すべてのページを返します。 – Ercan

+0

すべてのリクエストを '?r = ajax'などにして、ページ全体ではなく、必要なデータのみを送信するようにすることができます。 –

0

インデックス使用タラのJava/AJAXや使用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 }); 

あなたのdivのhtmlが

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

あなたfriends.php使用

を使用friends.php やページ内の他のページを作成します。
<?php include"your bd here" $jab = $_GET['var']; 
'select bd' 
echo $resultyourneed['f_id'] ?> 
関連する問題