Отображение div с использованием jquery и получение данных с сервера ape

Мой вопрос: как я могу сделать div, который виден в правом нижнем углу экрана в течение 10 секунд? Этот div запускает встроенный push-запрос ape-сервера, который запускается скриптом php. Я хотел бы попробовать отправить данные с php на сервер обезьян, а затем отобразить эти данные с помощью jquery с div, который отображается в течение x секунд. Я не сомневаюсь, как бы я начал или как я мог заставить это работать!

1 ответ

Вы говорите о двух разных вещах здесь, я думаю...

Либо вам нужна серверная функция с использованием php (а затем с помощью jQuery, чтобы показать / скрыть div), либо запрос AJAX с использованием jQuery. Поскольку вы, кажется, не хотите перезагружать страницу при выполнении всего этого, я бы выбрал опцию AJAX.

Примерный способ сделать это с AJAX будет следующим:

У вас должна быть запущена служба, на которой вы можете публиковать свои данные, которая будет предоставлять ответ для показа на странице. Это может быть закодировано в php.

Затем с jQuery вы бы сделали что-то вроде:

$(function(){
    // use jQuery's .post() shorthand method to post your data to your php script
    $.post('myService.php', function(data){
        // do something with whatever is returned by your php function... 
        // in this instance, show a div containing the response 
        // (assuming the response is html)
        $('#responseDiv').empty().append(data).fadeIn(500, function(){
            // in this callback (which runs once the fadeIn animation is complete), 
            // we will tell #responseDiv to disappear after 10 seconds
            setTimeout(function(){
                $('#responseDiv').fadeOut(500);
            }, 10000);
        });
    });
});

Я надеюсь, что это поможет ответить на ваш вопрос.

// РЕДАКТИРОВАТЬ: В ответ на ваш комментарий, кажется, что документация APE показывает вам, как это сделать -

var client = new APE.Client();

client.load();

client.core.join('testChannel');

client.request.send('foo', {ping: 'ho hey'});

client.onRaw('bar', function(raw, pipe) {
    console.log('echo : ' + raw.data.echo);
    console.log('Receiving : ' + raw.data.hello);
});

Метод client.request.send() отправляет данные на сервер, а затем метод client.onRaw() - это то, как вы работаете с ответами, судя по всему. В этом случае это просто выход из системы на консоль, но принцип звучит разумно. Этот onRaw ищет сырой с типом "бар", судя по всему.

Предлагаю вам внимательно прочитать документацию APE. У меня было 5 минут чтения, и я зашел так далеко, но на самом деле не будучи экспертом APE, я не могу пойти намного дальше, не потратив много времени на исследования.

// РЕДАКТИРОВАТЬ 2

Если это просто то, что сообщение появляется в div, а затем исчезает, что является вашей проблемой здесь, тогда часть моего первоначального ответа остается верной:

    $('#responseDiv').empty().append(data).fadeIn(500, function(){
        // in this callback (which runs once the fadeIn animation is complete), 
        // we will tell #responseDiv to disappear after 10 seconds
        setTimeout(function(){
            $('#responseDiv').fadeOut(500);
        }, 10000);
    });

Этот раздел скрипта добавит содержимое данных в div, затем добавит его, а затем исчезнет через 10 секунд. Все, что вам нужно сделать, это отсортировать, используя ответ от APE вместо этой переменной данных (заменить data с raw.data, Я думаю).

Если вам нужно создать div на лету, то вы можете сделать что-то вроде:

    // your css would need to set .response to be display: none
    $('body').append('<div class="response">'+raw.data+'</div>');
    $('.response').fadeIn(500, function(){
        // in this callback (which runs once the fadeIn animation is complete), 
        // we will tell .response to disappear after 10 seconds
        setTimeout(function(){
            $('.response').fadeOut(500);
        }, 10000);
    });

Это поможет вам с вашей проблемой?

Другие вопросы по тегам