Facebook自动刷新

What technology does Facebook use to auto-update information on a page without reloading it?

For example, while someone is viewing his profile if he receives a new message the inbox number auto-updates in the top bar. Same with wall posts, etc. Code-wise how is this managed?

They are using several new technologies like AJAX and History API. I strongly recommend you to use jQuery or another framework for AJAX and History.js for the History API.

the core javascript function set_timeout() is the man! Every x seconds the server is queried to fetch new results, updates etc. FB uses AJAX to get the info from the server and JS to update the page.

Facebook open a connection using AJAX which then hangs and hangs. The server doesn't send anything or respond to your browser unless, of course, a notification. Eventually, your browser may give up and disconnect from Facebook in which case the javascript will create a new connection and the process continues.

This is superior to polling the server every few seconds as it reduces load and makes load more predictable too.

Here's more info: http://en.wikipedia.org/wiki/Comet_%28programming%29

use setInterval on a function which makes an Ajax call to a file in which you have a MySQL query which checks something.

setInterval( "refresh();", 60000 ); 

refresh = function(){
       var URL = "file.php";
       $.ajax({ type: "GET", 
                url: URL, 
                succes: function(data){ 
                  if(data){
                      //change stuff 
                  }
                }
       });
    }

that should be a good starting point

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