Facebook自动刷新

时间:2011-11-03 14:43:35

标签: php ajax facebook

Facebook使用什么技术自动更新页面上的信息而不重新加载?

例如,当某人正在查看他的个人资料时,如果他收到新消息,则收件箱号码会在顶部栏中自动更新。与墙贴等相同。代码如何管理?

5 个答案:

答案 0 :(得分:1)

他们正在使用多种新技术,例如AJAXHistory 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 ..

autocallajax.php

<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

load.php

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