我有以下代码:
<div id="uniquefriends">
<?php
$friends = $helper->getuniqueUser($uid, $TOKEN);
foreach($friends as $friend) {
echo $friend; // Facebook UID
}
?>
</div>
<a href="#" id="other"><img src="bilder/arrow_otherfriends.png" style="height: 30px;" alt="load other friends" /></a>
<script>
$(document).ready( function() {
$('#other').click(function() {
$.ajax({
type: 'POST',
url: 'otherfriends/',
data: { uid: "<?php echo $uid; ?>", token: "<?php echo $TOKEN; ?>" },
cache: false,
success: function(result) {
$('#uniquefriends').html(result);
},
});
});
});
</script>
描述:
$friends = $helper->getuniqueUser($uid, $TOKEN);
正在获取用户 /me/ 的所有朋友并将其与数据库进行比较,并且 array_diff() 向我显示了朋友与已经使用该应用程序的用户的差异。
你可以想象,调用这个函数会产生巨大的重载,所以最好不要多次调用它。
这个函数每次调用只给我 4 个 uid (array_slice($array, 0, 4)) (可以修改)
问题:
当用户单击“ <a href="#" id="other"><img src="bilder/arrow_otherfriends.png" style="height: 30px;" alt="load other friends" /></a>
”时,将生成下一组用户并作为结果给出我(参见 ajax 调用)。
ajax 调用如下所示:
<?php
if(isset($_POST['uid']) && !empty($_POST['uid'])) {
$uid = $_POST['uid'];
$token = $_POST['token'];
$helper = new helper();
$friends = $helper->getuniqueUser($uid, $token);
foreach($friends as $friend) {
echo $friend;
}
}
?>
所以每次"$friends = $helper->getuniqueUser($uid, $TOKEN);"
用户点击链接时我都会打电话。性能下降,等待时间很长。
我可以以某种方式改进此代码,以不经常调用此函数吗?有什么选择吗?