gpt4 book ai didi

php - 如何在不刷新的情况下在页面上获得实时信息?

转载 作者:行者123 更新时间:2023-12-01 02:24:02 28 4
gpt4 key购买 nike

Facebook 推出了一个滚动条,可以向下滚动显示实时新闻。我怎样才能在我的网站上拥有同样的功能?我不喜欢使用 iframe 并刷新它,因为它会 A 闪烁,B 使页面加载图标出现(取决于浏览器)。如何做到这一点?

最佳答案

为此,您需要每隔 X 秒使用 AJAX 获取您正在查找的数据。也称为轮询。

分割如下:每隔 X 秒,我们想要查询数据库以获取新数据。因此,我们将异步 POST 发送到 php 页面,然后返回结果的数据集。我们还声明了一个回调函数(原生于 jQuery),它将传递来自 PHP 的数据回显。

您的 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));
}

您的前端 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');
}

这里发生的事情本质上是您将使用 jQuery 的 ajax 方法异步发布。在 PHP 中触发函数的方式是在帖子中引用一个键值项,描述您想要在 ajax 请求中调用哪个函数。我将此项称为“Acton”,它的值是将为此特定事件调用的函数的名称。

然后,您可以通过回显 json_encoded 数据集来返回后端获取的数据。

在 javascript 中,您每 10 秒就向此 php 函数发布一次信息。发布完成后的回调是 function(response) 部分,其中回显的数据作为 response 传递。然后,您可以将此响应视为 json 对象(因为在函数之后我们将返回类型声明为 json

关于php - 如何在不刷新的情况下在页面上获得实时信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7563310/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com