我的问题是:如何制作一个在屏幕右下角可见的div,持续10秒? 这个div会触发由php脚本触发的ape-server内联推送。 我想尝试使用php将数据发布到ape服务器,然后使用带有显示x秒的div的jquery回显此数据。我毫不怀疑我将如何开始,或者我怎么能让它发挥作用!
答案 0 :(得分:0)
你在谈论两件不同的事情,我想......
你想要一个使用php的服务器端函数(然后使用jQuery来显示/隐藏div),或者使用jQuery的AJAX请求。由于您在执行所有这些操作时似乎不想重新加载页面,因此我会使用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正在寻找一种带有'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);
});
这对您的问题有帮助吗?