Обратная реализация Ajax с использованием php - PullRequest
6 голосов
/ 31 декабря 2010

Я хочу реализовать обратный ajax в моем приложении, которое использует PHP и jquery.Я немного погуглил и нашел XAJA, но это, похоже, платное приложение.Существует ли приложение с открытым исходным кодом для того же или кто-то реализовал его?

Некоторые указатели или подсказки были бы очень полезны.

Заранее спасибо.

Ответы [ 4 ]

1 голос
/ 31 декабря 2010

Вы ищете то, что они называют «длинным опросом» - я сделал «длинный опрос php», и я получил этот поток при переполнении стека:

Как реализовать базовый «длинный опрос»

1 голос
/ 31 декабря 2010

Мне известны два типа реверса AJAX:
1- опрос
2- Нажатие

Я думаю, что опрос довольно легко реализовать, вы просто заставляете свой javascript делать регулярные запросы к серверу каждый промежуток времени, и когда у сервера есть данные для него, он будет отвечать. Это похоже на пинг, а некоторые называют это сердцебиение, но это очень очевидное решение этой проблемы. Однако это может легко перегрузить сервер.

РЕДАКТИРОВАТЬ Простой опрос Пример кода:
Серверное:

<?php
//pong.php php isn't my main thing but tried my best!
$obj = new WhatsNew();
$out = "";
if ($obj->getGotNew()){
    $types = new array();
    foreach ($obj->newStuff() as $type)
        {
            $new = array('type' => $type);
            $types[] = $new;
        }

    $out = json_encode($types);
}
else{
    $out = json_encode(array('nothingNew' => true));
}


на стороне клиента:

function ping(){
    $.ajax(
        {

            url : "pong.php",
            success : function (data){
                data = JSON.parse(data),
                if (data['nothingNew'])
                    return;
                for(var i in data){
                    var type = data[i]['type'];
                    if (type && incomingDataHandlers[type]){
                        incomingDataHandlers[type]();
                    }
                }


        });
}
incomingDataHandlers = {
    comments: function () {
        $.ajax({
            url: "getComments.php",
            method: "GET",
            data: getNewCommentRequsetData() // pass data to the server;
            success : function (data){
                //do something with your new comments
            }
        });
    },
    message: function (){
        $.ajax({
            url: "getMessages.php",
            method: "GET",
            data: getNewMessageRequestData() // pass data to the server;
            success : function (data){
                //do something with your new messages
            }
        });
    }
}
$(docment).ready(function () {
    setInterval(ping, 1000);
})
0 голосов
/ 13 марта 2012

Вы проверили APE ?

Это технология потоковой передачи данных в режиме реального времени, передаваемая по единственному ajax-соединению с низким объемом. Концепция полезна, вы можете повторить то же самое с вашей серверной реализацией

0 голосов
/ 31 декабря 2010

вы можете использовать веб-сокеты в сочетании с «флэш-» веб-сокетами, потому что почти все браузеры имеют встроенную флэш-память (в среднем около 96%? => http://www.statowl.com/flash.php) => https://github.com/gimite/web-socket-js. Вы можете использовать это вместе с http://code.google.com/p/phpwebsocket/. Тем не менее, мне интересно, будет ли производительность хорошей. Если бы все это было возможно, я бы использовал node.js, чтобы сделать обратный ajax. http://socket.io - это действительно крутой проект, чтобы сделать это!

...