Joh*_*Doe 2 javascript php jquery live
Facebook推出了一个滚动条,显示实时新闻向下滚动.如何在我的网站上拥有相同的功能时间?我不关心使用iframe并让它刷新,因为它会闪烁而B会使页面加载图标出现(取决于浏览器).如何才能做到这一点?
为此,您需要每隔X秒使用AJAX获取您正在寻找的数据.也称为轮询.
这是分解:每隔X秒,我们想查询我们的数据库以获取新数据.所以我们向php页面发送异步POST,然后返回结果的数据集.我们还声明了一个回调函数(jQuery原生),它将传递来自PHP的echoing数据.
你的PHP:
if (isset($_POST['action'])){
if ($_POST['action'] == 'pollNewData'){
pollNewData();
}
}
function pollNewData(){
$term = $_POST['term'];
$sql = "select * from TABLE where TERM = '$term'";
$result = get_rows($sql);
echo json_encode(array('status'=>200, 'results'=>$results));
}
Run Code Online (Sandbox Code Playgroud)
你的前端javascript:
setTimeout(pollForNewData, 10000);
function pollForNewData(){
$.post('url/ajax.php',{
action: 'pollNewData',
term: 'your_term'
}, function(response){
if (response.status == 200){
$.each(response.results, function(index, value){
$("#container").append(value.nodeName);
});
}
}, 'json');
}
Run Code Online (Sandbox Code Playgroud)
这里的基本内容是你将使用jQuery的ajax方法异步发布.在PHP中触发函数的方法是在帖子中引用一个键值项,描述你想在ajax请求中调用哪个函数.我将此项称为"Acton",它的值是将为此特定事件调用的函数的名称.
然后,通过回显json_encoded数据集,返回由后端获取的数据.
在javascript中,你每10秒发布一次这个php函数.完成帖子后的回调是function(response)部分,echo的数据传递为response.然后,您可以将此响应视为json对象(因为在我们声明返回类型的函数之后)json.