0

我的问题是:如何制作一个在屏幕右下角可见 10 秒的 div?此 div 将触发由 php 脚本触发的猿服务器内联推送。我想尝试使用 php 将数据发布到猿服务器,然后使用 jquery 与显示 x 秒的 div 回显此数据。我毫不怀疑我将如何开始或如何使其发挥作用!

4

1 回答 1

0

你在这里说的是两种不同的东西,我想...

您想要使用 php 的服务器端函数(然后使用 jQuery 显示/隐藏 div),或者使用 jQuery 的 AJAX 请求。由于您似乎不想在执行所有这些操作时重新加载页面,因此我会选择 AJAX 选项。

使用 AJAX 执行此操作的示例方法如下:

您需要运行一项服务,您可以将您的数据发布到该服务,该服务将提供响应以显示在页内。这可以用 php.ini 编码。

然后使用 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 正在寻找具有“bar”类型的原始数据。

我建议彻底阅读 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);
    });

这对您的问题有帮助吗?

于 2012-07-24T10:12:59.580 回答