动态发布数据而不刷新页面
我只想知道如何在不刷新页面的情况下发布数据,例如现在Facebook在发布评论时将发布并向用户显示而不刷新页面。我知道如何在没有使用AJAX刷新页面的情况下在MySQL中插入数据,但问题是:如何在不刷新页面的情况下同时插入数据并获取数据。动态发布数据而不刷新页面
谢谢你
这就是所有的JavaScript(或jQuery)。您已经知道如何将数据发送到您的服务器。现在,您只需使用javascript修改html即可。 例如(jQuery的):
$("#submit").click(function(){
$("#comments").append("<div class=newcomment>"+$("#textbox").val()+"</div>");
$.POST('upload.php',{comments:$("#textbox").val()});
});
现在的评论是发送到upload.php的和注释添加到您的页面的注释部分。 如果您还需要包含服务器的数据,只需在upload.php文件中添加一些javascript,并执行如下操作:$("#getdatefromserver").load('upload.php',{comments:$("#textbox").val()});
现在,upload.php中的javascript将在页面中运行。
并没有页面刷新完成。
OSDM的答案可能看起来完成了你想要的行为,但它不是你问的那个。他的回答只会在用户上传某些内容时提供更新,而不是在系统中创建(上传)。
有两种不同的方式可以完成服务器中新信息的获取:AJAX和WebSockets。
AJAX - AJAX代表异步Javascript和XML。它允许您使用场景后面的特定服务器获取内容,然后可以将新提取的数据插入到页面中以将其显示给用户。然而,这必须手动触发,因此在实时中并不真正发生。您可以手动(例如按下按钮)或定时器(例如每5秒钟,10分钟等)触发数据的提取。需要注意的是,服务器很难知道该页面当前正在显示哪些信息,因此每个AJAX调用通常会请求显示所有信息并重新渲染页面(删除当前内容并插入新提取的还包括已经显示的内容)。
WebSockets - WebSockets可以被认为是'升级'的HTTP连接。客户端和服务器建立连接并可以自由地向任一方向发送数据。您可以在服务器和网站(客户端)之间设置网络套接字,以便无论何时将新内容插入到MySQL数据库中,服务器都会将新内容中继到客户端。就像AJAX一样,您可以解释新信息并将其添加到页面中。使用网络套接字的好处是,当服务器接收到信息时,信息将实时提供给您。这意味着您只需在首次加载站点时批量获取数据,并在发生更新时将更新推送给您。您不需要依赖定时器或手动输入来获取数据,因为您正在提供数据而不是提取数据。例如,Facebook不依赖计时器或获取新数据(尽管如果刷新页面肯定会发生这种情况),但每个客户端都正在通过Web套接字监听服务器的新信息。
看看websockets或webhooks,你应该能够完成你想要的任何一个。 – dmlittle