使用ajax动态检查邮件收件箱?

时间:2010-11-12 16:40:13

标签: php jquery ajax

我几乎完成了几个月前开始编写的网站编码。我已经完成了基础,但是,我想为它添加一些新功能,以使其更快,并添加一些金光闪闪。

目前,我有一个系统,php每次在页面发出新的页面请求时都会查询数据库以查看是否有任何未读的消息。如果用户有未读消息,php会回复引用内未读消息的数量。

如何使用ajax或jquery来回显未读消息的数量而不必发出新的页面请求?

感谢

3 个答案:

答案 0 :(得分:3)

您可以设置定时请求,如下所示:

var element = $('...');

// new get request every minute - 60*1000ms
var interval = setInterval( function(){
    element.load('/phpfile.php');
}, 60000 );

答案 1 :(得分:2)

在/phpfile.php中 输出结果并将数组编码为json格式。例如,您可能有查询

<?php
    include 'config.php';
    include 'opendb.php';        
    $query  = "SELECT message FROM messages";
    $result = mysql_query($query);
    $jarray = array();
    while($row = mysql_fetch_array($result, MYSQL_ASSOC))
    {
        $jarray[] = array("message"=>$row['message']);           
    }
    echo json_encode($jarray);        
    include 'closedb.php';
?>

使用ajax获取json数组。

  var messagesContainer = $('messages'); 
  $.getJSON('phpfile.php',function(data)
    {
      $.each(data, function(i,stuff){
          $("<div class='msg'>"+stuff.message+"</div>").prependTo(messagesContainer);
      }

    })

答案 2 :(得分:0)

创建一个脚本,只回显未读消息的数量(没有任何其他HTML),然后使用jQuery来获取它:

$('#span_with_numer_of_messages').load('your_unread_messages_script.php');