我正在尝试创建一个在线用户内容,它可以自动刷新并每次调用php函数。
我用过
<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。我可以在控制台上用firebug看到它。它返回所有页面源代码作为GET答案。我的问题是它会减速吗?因为我将对其他div内容使用此方法5次,并且每次每个函数将加载整页。
此外,我尝试创建单独的.php文件,但我在PHP代码中有一些依赖,我不能在另一个文件中运行此函数。
答案 0 :(得分:2)
对您网页的任何请求都会产生完整的代码。您可以在php中指定在存在特定GET或POST数据时仅发回页面所需的部分,并使用$.get()或$.post()来获取它们。
因为我将使用此方法5次
在同一页面上?然后,最好在回调函数期间将其替换为$.get()
和$.post()
data
之一。
答案 1 :(得分:0)
创建其他页面friends.php 并在页面索引中使用cod 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>
你的朋友.php使用
<?php include"your bd here" $jab = $_GET['var'];
'select bd'
echo $resultyourneed['f_id'] ?>