2010-09-19 26 views
10

Làm cách nào để phát triển một hệ thống cảnh báo như Facebook, nơi Người dùng A thêm Người dùng B, Người dùng B sẽ nhận được một số trong Phần Yêu cầu Kết bạn trên tiêu đề như trong hình bên dưới. Làm thế nào tôi có thể phát triển một cái gì đó như thế? Làm thế nào chúng ta có thể nhận được những con số như thế này? Làm thế nào tôi có thể nhận được mã trong PHP và JQuery?
alt textLàm thế nào để phát triển hệ thống cảnh báo như Facebook bằng cách sử dụng PHP và Jquery?

Trả lời

17

Tôi đoán bạn muốn có một phương tiện cảnh báo người dùng A, khi người dùng B 'bạn bè' anh/cô ấy mà không đòi hỏi một trang mới?

Điều này yêu cầu "AJAX". AJAX là viết tắt của Javascript và XML không đồng bộ, nhưng đây là một thuật ngữ quá tải hiện nay-một-ngày với cấu trúc dữ liệu trao đổi thực tế thường sử dụng JSON thay vì XML. JSON là Ký hiệu đối tượng JavaScript. Dù sao, ý tưởng là trang web của bạn - mà không được làm mới - có thể thực hiện cuộc gọi định kỳ đến máy chủ của bạn để nhận thông tin mới hoặc cập nhật để cập nhật hiển thị. Với PHP và jQuery, trước tiên bạn sẽ muốn thiết lập cuộc gọi AJAX trên trang của mình như sau:

$(function() { // on document ready 

function updateAlerts() { 
    $.ajax({ 
     url : "/check.php", 
     type : "POST", 
     data : { 
     method : 'checkAlerts' 
     }, 
     success : function(data, textStatus, XMLHttpRequest) { 
     var response = $.parseJSON(data); 

     // Update the DOM to show the new alerts! 
     if (response.friendRequests > 0) { 
      // update the number in the DOM and make sure it is visible... 
      $('#unreadFriendRequestsNum').show().text(response.friendRequests); 
     } 
     else { 
      // Hide the number, since there are no pending friend requests 
      $('#unreadFriendRequestsNum').hide(); 
     } 

     // Do something similar for unreadMessages, if required... 
     } 
    }); 
    setTimeout('updateAlerts()', 15000); // Every 15 seconds. 
} 

}); 

Sẽ, cứ sau 15 giây, hãy yêu cầu máy chủ của bạn tại url /check.php trên cùng tên miền với nguồn gốc của trang web. PHP sẽ truy vấn cơ sở dữ liệu của bạn và trả về số lượng yêu cầu kết bạn chưa đọc. Có lẽ một cái gì đó như thế này:

<?php 

    function isValid(session) { 
     // given the user's session object, ensure it is valid 
     // and that there's no funny business 
     // TO BE IMPLEMENTED 
    } 

    function sanitize(input) { 
     // return CLEAN input 
     // TO BE IMPLEMENTED 
    } 

    // Be sure to check that your user's session is valid before proceeding, 
    // we don't want people checking other people's friend requests! 
    if (!isValid(session)) { exit; } 

    $method = sanitize($_POST['method']); 

    switch ($method) { 
     case 'checkAlerts' : 
     // Check DB for number of unread friend requests and or unread messages 
     // TO BE IMPLEMENTED 

     $response = ['friendRequests' => $num_friend_requests, 
         'messages' => $num_unread_messages ]; 

     return json_encode($response); 
     exit; 

     case 'someOtherMethodIfRequired' : 
     // ... 
     exit; 
    } 
?> 
+0

Tôi không hiểu bạn có thể giải thích thêm một chút không? –

+0

Bằng cách nào? =) – mkoistinen

+0

thks ..... điều này thực sự giúp ... –

Các vấn đề liên quan