如何使用JavaScript在客户端之间共享数据?
我有一个JSON变量,但我想让PHP页面上的每个人都能看到相同的变量内容 这段代码应该更多地解释我的情况。 我正试图使它的网页不会重新加载如何使用JavaScript在客户端之间共享数据?,javascript,php,jquery,Javascript,Php,Jquery,我有一个JSON变量,但我想让PHP页面上的每个人都能看到相同的变量内容 这段代码应该更多地解释我的情况。 我正试图使它的网页不会重新加载 var chats = []; var j = jQuery.noConflict(); j(document).ready(function() { setInterval(function(i){ var txt = ""; var x;
var chats = [];
var j = jQuery.noConflict();
j(document).ready(function()
{
setInterval(function(i){
var txt = "";
var x;
for (x in chats) {
txt += chats[x] + " <br />";
}
document.getElementById("json").innerHTML = JSON.stringify(chats);
}, 1000)
});
j(document).ready(function() {
j('#post_button').click(function() {
$text = $('[name=message]').val();
$sender = $('#texta').val();
chatstuff = {
"sender" : $sender,
"message" : $text,
};
chats.push(chatstuff);
$('[name=message]').val("");
});
});
因此,当它执行document.getElementByIdjson.innerHTML=JSON.stringifychats;,我希望每个人都能在同一页面上看到相同的聊天内容。JavaScript在用户浏览器中运行。变量中的任何数据仅对该客户端可见 为了在客户端之间同步数据,您需要使用WebSocket之类的工具。每个客户端用户都会将数据发送到服务器,服务器会将所有客户端活动中继到每个客户端 一个非常流行的JavaScript websockets库是。如果您刚刚开始搜索websockets教程,您将发现大量关于如何使用JavaScript创建简单聊天的内容 这是一个就在那里的网站 为什么要使用WebSocket而不是Ajax 好吧,想一想。。。Ajax非常适合客户端异步向服务器发送数据,但是服务器与客户端通信又如何呢 如果用户A写hello,我们可以使用Ajax将其发送到服务器,但是如何通知用户B和C新消息到达 历史上,在WebSocket出现之前,这是通过Ajax长轮询完成的。这意味着每x秒,每个客户机都会向服务器发出一个ajax请求,询问嘿,有什么新消息需要我阅读吗 如果你正在实现一个实时聊天应用程序,这意味着x将是最长5秒的时间,否则用户将对延迟感到非常沮丧 每5秒钟ping一次服务器,一遍又一遍地问同样的问题,这很烦人。以今天的标准来看,它是相当古老的。也许有更好的方法 好的,那么WebSocket是如何让这更好的呢 WebSocket允许客户端和服务器之间的连接保持打开状态。这意味着服务器可以在数据到达后立即向客户机发送数据,而客户机无需请求数据 这意味着我们可以放弃轮询,更快地同步数据!好极了 好的,那太好了,但我不能依赖尖端技术 那也不是什么问题。我建议使用websocket库(例如socket.io)的原因是,如果浏览器不支持实际的websocket,socket.io会做出各种各样的尝试来实现类似套接字的连接 包含在回退方法列表中的正是。。。drumroll,请。。。Ajax长轮询 是否有socket.io的替代方案
是的。现在你知道你在寻找它应该很容易找到吨的选择在那里。是另一个很棒的库,如果socket.io对您来说太过繁重,我一定会去看看。JavaScript在用户浏览器中运行。变量中的任何数据仅对该客户端可见 为了在客户端之间同步数据,您需要使用WebSocket之类的工具。每个客户端用户都会将数据发送到服务器,服务器会将所有客户端活动中继到每个客户端 一个非常流行的JavaScript websockets库是。如果您刚刚开始搜索websockets教程,您将发现大量关于如何使用JavaScript创建简单聊天的内容 这是一个就在那里的网站 为什么要使用WebSocket而不是Ajax 好吧,想一想。。。Ajax非常适合客户端异步向服务器发送数据,但是服务器与客户端通信又如何呢 如果用户A写hello,我们可以使用Ajax将其发送到服务器,但是如何通知用户B和C新消息到达 历史上,在WebSocket出现之前,这是通过Ajax长轮询完成的。这意味着每x秒,每个客户机都会向服务器发出一个ajax请求,询问嘿,有什么新消息需要我阅读吗 如果你正在实现一个实时聊天应用程序,这意味着x将是最长5秒的时间,否则用户将对延迟感到非常沮丧 每5秒钟ping一次服务器,一遍又一遍地问同样的问题,这很烦人。以今天的标准来看,它是相当古老的。也许有更好的方法 好的,那么WebSocket是如何让这更好的呢 WebSocket允许客户端和服务器之间的连接保持打开状态。这意味着服务器可以在数据到达后立即向客户机发送数据,而客户机无需请求数据 这意味着我们可以放弃轮询,更快地同步数据!好极了 好的,那太好了,但我不能依赖尖端技术 那也不是什么问题。我之所以推荐websocket库,例如socket.io,是因为socket.io将生成各种各样的 在浏览器不支持实际WebSocket的情况下,尝试实现类似套接字的连接 包含在回退方法列表中的正是。。。drumroll,请。。。Ajax长轮询 是否有socket.io的替代方案
是的。现在你知道你在寻找它应该很容易找到吨的选择在那里。是另一个很棒的库,如果socket.io对您来说太笨手笨脚了,我肯定会检查它。不,您必须使用服务器来完成此操作。将此页面中的新数据发送到服务器,服务器将为其他查看器更新页面。考虑阅读这样的教程 不,你必须为此使用服务器。将此页面中的新数据发送到服务器,服务器将为其他查看器更新页面。考虑阅读一些这样的教程谢谢你给我这个想法,如果我不能使用Ajax,这将是我的次要。实际上我会尝试这一点,再次感谢这么多,一直在寻找一段路。谢谢你给我的想法,如果我似乎不能使用ajax,这将是我的第二步。实际上,我会尝试一下,再次感谢你,我一直在寻找方法。是的,那就是使用ajax。是的,xmlhttp是朝着正确的方向迈出的一步,但正如@naomik之前指出的那样,您可以通过更复杂的WebSocket实现真正的交互。使用ajax,您只能每X秒提取一次新数据,相反,WebSocket可以一次将数据推送到所有用户。@vitr我相信,如果您阅读naomik的答案,您的想法和答案也会改变。.ajax长轮询在许多方面都不有效。毫无疑问,WebSocket更好,但这并没有改变服务器和许多客户机的概念。套接字只是另一种实现。是的,那就是使用Ajax。是的,xmlhttp是朝着正确方向迈出的一步,但正如@naomik之前指出的那样,您可以使用更复杂的WebSocket实现真正的交互。使用ajax,您只能每X秒提取一次新数据,相反,WebSocket可以一次将数据推送到所有用户。@vitr我相信,如果您阅读naomik的答案,您的想法和答案也会改变。.ajax长轮询在许多方面都不有效。毫无疑问,WebSocket更好,但这并没有改变服务器和许多客户机的概念。套接字只是另一种实现。