Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态发布数据而不刷新页面_Javascript_Ajax - Fatal编程技术网

Javascript 动态发布数据而不刷新页面

Javascript 动态发布数据而不刷新页面,javascript,ajax,Javascript,Ajax,我只是想知道如何在不刷新页面的情况下发布数据,例如,现在Facebook,当你发布评论时,它将被发布并显示给人们,而不刷新页面。我知道如何在MySQL中插入数据而不使用AJAX刷新页面,但问题是:如何在不刷新页面的情况下插入数据并同时获取数据 谢谢这些都是javascript(或jquery)。您已经知道如何将数据发送到服务器。现在,您需要做的就是使用javascript修改html。 例如(jquery): $(“#提交”)。单击(函数(){ $(“#注释”).append(“+$(“#文本框

我只是想知道如何在不刷新页面的情况下发布数据,例如,现在Facebook,当你发布评论时,它将被发布并显示给人们,而不刷新页面。我知道如何在MySQL中插入数据而不使用AJAX刷新页面,但问题是:如何在不刷新页面的情况下插入数据并同时获取数据

谢谢

这些都是javascript(或jquery)。您已经知道如何将数据发送到服务器。现在,您需要做的就是使用javascript修改html。 例如(jquery):

$(“#提交”)。单击(函数(){
$(“#注释”).append(“+$(“#文本框”).val()+”;
$.POST('upload.php',{comments:$(“#textbox”).val()});
});
现在,评论被发送到upload.php,并添加到页面的评论部分。 如果还需要包含来自服务器的数据,只需添加一些javascript到upload.php文件,并执行如下操作:
$(“#getdatefromserver”).load('upload.php',{comments:$(“#textbox”).val()
现在upload.php中的javascript将在页面中运行


而且没有进行页面刷新。

OSDM的回答似乎可以实现您想要的行为,但它不是您要问的。他的回答只会在用户上传内容时提供更新,而不是在系统中创建(上传)时提供更新

在服务器中获取新信息有两种不同的方法:AJAX和WebSocket

AJAX-AJAX代表异步Javascript和XML。它允许您在后台使用特定的服务器获取内容,然后您可以将新获取的数据插入页面,以向用户显示。但是,这必须手动触发,因此不会实时发生。您可以手动(如按下按钮)或通过计时器(如每5秒、10分钟等)触发数据提取。需要注意的是,服务器很难知道页面当前显示的是什么信息,因此每个AJAX调用通常会请求显示所有信息并重新呈现页面(删除当前内容并插入新获取的内容,其中还包括已经显示的内容)

WebSockets-可以将WebSockets视为“升级”的HTTP连接。客户端和服务器建立连接,可以任意向任一方向发送数据。您可以在服务器和网站(客户机)之间设置web套接字,以便在MySQL数据库中插入新内容时,服务器将新内容转发给客户机。与AJAX非常相似,您将解释新信息并将其添加到页面中。使用web套接字的好处是,当服务器接收到信息时,信息会实时反馈给您。这意味着您只需要在首次加载站点时批量获取数据,并在更新发生时将其推送到您手中。您不需要依赖计时器或手动输入来获取数据,因为您正在接收数据而不获取数据


例如,Facebook不依赖计时器或您获取新数据(尽管刷新页面时肯定会发生这种情况),但每个客户端都在通过web套接字监听服务器获取新信息。

看看WebSocket或WebHook,您应该能够用这两种方式中的任何一种来完成您想要的任务。
$("#submit").click(function(){
$("#comments").append("<div class=newcomment>"+$("#textbox").val()+"</div>");
$.POST('upload.php',{comments:$("#textbox").val()});
});