Facebook使用什么技术自动更新页面上的信息而不重新加载?
例如,当某人正在查看他的个人资料时,如果他收到新消息,则收件箱号码会在顶部栏中自动更新。与墙贴等相同。代码如何管理?
答案 0 :(得分:1)
他们正在使用多种新技术,例如AJAX和History API。 我强烈建议您使用jQuery或其他AJAX框架和History.js用于历史记录API。
答案 1 :(得分:0)
核心javascript函数set_timeout()是男人!每x秒查询服务器以获取新结果,更新等.FB使用AJAX从服务器获取信息,JS使用JS来更新页面。
答案 2 :(得分:0)
Facebook使用AJAX打开连接,然后挂起并挂起。除非通知,否则服务器不会发送任何内容或回复您的浏览器。最终,您的浏览器可能会放弃并断开与Facebook的连接,在这种情况下,javascript将创建一个新连接并继续该过程。
这比每隔几秒轮询一次服务器更优越,因为它可以减少负载并使负载更加可预测。
以下是更多信息:http://en.wikipedia.org/wiki/Comet_%28programming%29
答案 3 :(得分:0)
在一个函数上使用setInterval
,该函数对一个文件进行Ajax调用,在该文件中你有一个MySQL查询来检查一些东西。
setInterval( "refresh();", 60000 );
refresh = function(){
var URL = "file.php";
$.ajax({ type: "GET",
url: URL,
succes: function(data){
if(data){
//change stuff
}
}
});
}
这应该是一个很好的起点
答案 4 :(得分:-1)
coba gunakan script ini ..
<html>
<head>
<script type="text/javascript" src="jquery.min.js"></script>
<script>
$(document).ready(function(){
var callAjax = function(){
$.ajax({
method:'get',
url:'load.php',
success:function(data){
$("#sample").html(data);
}
});
}
setInterval(callAjax,5000);
});
</script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<?php
<div id='sample'>100 </div>";
?>
</body>
</html
<?php
mysql_connect("localhost","root","siantarman");
mysql_select_db("konsultasi") or die("<br><br><hr width=350 size=1 align=left>
<font color=red><b>Database belum tersambung!</font></b>
<br>Hubungi administrator anda!<br>" . mysql_error());
$sql_info=mysql_query("select jumlah from data_konsultasi where id = '9'");
$r_data=mysql_fetch_array($sql_info);
echo"$r_data[jumlah]";
?>
selamat mencoba ..