我的问题是:如何制作一个在屏幕右下角可见 10 秒的 div?此 div 将触发由 php 脚本触发的猿服务器内联推送。我想尝试使用 php 将数据发布到猿服务器,然后使用 jquery 与显示 x 秒的 div 回显此数据。我毫不怀疑我将如何开始或如何使其发挥作用!
1 回答
你在这里说的是两种不同的东西,我想...
您想要使用 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);
});
这对您的问题有帮助吗?