Javascript 如何在两个或多个用户页面之间获取数据而不刷新页面
嗨,我正在我们工厂制作一个进度控制页面。。我用mysql、php制作了这个系统 一切都完成了,但我唯一想知道的是: 目前,如果有人从系统中更改/添加/删除数据,其他人必须刷新页面以查看新数据 如果没有人刷新任何页面,一切怎么可能改变 有没有一条途径可以实现这一点,或者有一个文档记录等等Javascript 如何在两个或多个用户页面之间获取数据而不刷新页面,javascript,php,mysql,Javascript,Php,Mysql,嗨,我正在我们工厂制作一个进度控制页面。。我用mysql、php制作了这个系统 一切都完成了,但我唯一想知道的是: 目前,如果有人从系统中更改/添加/删除数据,其他人必须刷新页面以查看新数据 如果没有人刷新任何页面,一切怎么可能改变 有没有一条途径可以实现这一点,或者有一个文档记录等等 谢谢。您可以使用javascript(更准确地说是jQuery的ajax)定期在后台更新页面(无需刷新) 它基本上向端点(一个web地址)发送一个请求,然后当结果返回时,调用回调函数来处理数据 你可以从这里开始
谢谢。您可以使用javascript(更准确地说是jQuery的ajax)定期在后台更新页面(无需刷新) 它基本上向端点(一个web地址)发送一个请求,然后当结果返回时,调用回调函数来处理数据 你可以从这里开始 更多解释 这是一个使用ajax的后台异步请求的工作示例,它是一个简单的页面,每秒钟从公共API获取比特币的当前汇率,并显示它 它的安装和运行非常简单,而且它还有很多其他功能(比如发送自定义标题、发送帖子或其他请求、在正文中发送数据等)
函数fetchData(){
$.ajax({
网址:'https://api.coinranking.com/v1/public/coin/1',
成功:功能(数据){
$('#value').html(parseFloat(data.data.coin.price).toFixed(3));
设d=新日期();
$('#time').html('${d.getFullYear()}/${(d.getMonth()+1).toString().padStart(2,'0')}/${d.getDate().toString().padStart(2,'0')}${d.getHours().toString().padStart(2,'0')}:${d.getMinutes().toString().padStart(2,'0')}:${d.getSeconds().toString().padStart(2,'0')});
}
})
}
$(文档).ready(函数(){
fetchData();
window.setInterval(fetchData,1000)
})
.main{
显示器:flex;
弯曲方向:立柱;
对齐项目:居中;
}
.价值{
字体大小:粗体;
}
当前比特币汇率:
0$
(截至)
您可以使用javascript(更准确地说是jQuery的ajax)定期在后台更新页面(无需刷新)
它基本上向端点(一个web地址)发送一个请求,然后当结果返回时,调用回调函数来处理数据
你可以从这里开始
更多解释
这是一个使用ajax的后台异步请求的工作示例,它是一个简单的页面,每秒钟从公共API获取比特币的当前汇率,并显示它
它的安装和运行非常简单,而且它还有很多其他功能(比如发送自定义标题、发送帖子或其他请求、在正文中发送数据等)
函数fetchData(){
$.ajax({
网址:'https://api.coinranking.com/v1/public/coin/1',
成功:功能(数据){
$('#value').html(parseFloat(data.data.coin.price).toFixed(3));
设d=新日期();
$('#time').html('${d.getFullYear()}/${(d.getMonth()+1).toString().padStart(2,'0')}/${d.getDate().toString().padStart(2,'0')}${d.getHours().toString().padStart(2,'0')}:${d.getMinutes().toString().padStart(2,'0')}:${d.getSeconds().toString().padStart(2,'0')});
}
})
}
$(文档).ready(函数(){
fetchData();
window.setInterval(fetchData,1000)
})
.main{
显示器:flex;
弯曲方向:立柱;
对齐项目:居中;
}
.价值{
字体大小:粗体;
}
当前比特币汇率:
0$
(截至)
我把代码从上改到下。。。就像这样:
$(document).ready(function(){
load_folder_list();
function load_folder_list()
{
var action = "fetch";
$.ajax({
url:"planlama_action.php",
method:"POST",
data:{action:action},
success:function(data)
{
$('#folder_table').html(data);
setInterval(load_folder_list,1000);
}
});
}
这对我很有效。。多亏了阿米尔
但唯一的问题是现在。。有时,该代码会停止网页的工作
它是不规则的。。。有时工作很完美。。有时变得很慢等等
为什么会这样?错在哪里?(注:本页我上传文件、更改文本等)
我把代码从上改到下。。。就像这样:
$(document).ready(function(){
load_folder_list();
function load_folder_list()
{
var action = "fetch";
$.ajax({
url:"planlama_action.php",
method:"POST",
data:{action:action},
success:function(data)
{
$('#folder_table').html(data);
setInterval(load_folder_list,1000);
}
});
}
这对我很有效。。多亏了阿米尔
但唯一的问题是现在。。有时,该代码会停止网页的工作
它是不规则的。。。有时工作很完美。。有时变得很慢等等
为什么会这样?错在哪里?(注意:在此页面中,我上传文件、更改文本等)Thanx,请回复。。我明白你的意思。但是例子有点不够。。你能再给我举个例子吗。。也作为提醒:我希望我所有的网页都是“聊天”,我的意思是:当有人更新数据。。所有其他用户数据将在不刷新页面的情况下更新…您有两个选项:您可以定期检查服务器是否有任何更改(如我在回答中所建议的),或者您可以使用另一种方法,允许服务器在每次更改时通知客户端。第一种方法比较简单,适用于不需要太多快速更新的情况(例如,每分钟更新一次或更新频率较低)。第二种方法更复杂,适用于几乎需要即时更新且只有少数客户端(可能少于10个)的情况。我建议您不要选择第二种方案,除非您必须这样做。让我知道哪种方案是您的用例,这样我们可以再次讨论细节谢谢您的帮助。。。我最多有10个用户。。事实上,我几乎完成了我们的网络程序。。。但现在每个人都需要随时刷新页面,看看是否有新的更新或任何东西。。。我想有两件事:1)一个代码,例如每10秒刷新一次页面,但它会分发给用户。。。2) 一个代码,调用数据库每秒网页html页面作为“实时聊天等”很容易在互联网上找到,但我想我选择的是两个或您的第一个报价。。。你能给我一些关于如何从服务器上执行的详细信息吗?我在本地主机中使用这些代码,在w3school中也在我的网页中使用。。其中3个,未刷新页面不会更改:请回复。。我明白你的意思。但这个例子有点不够