【问题标题】:keep textarea update automatically on input - all around the world输入时自动保持 textarea 更新 - 全世界
【发布时间】:2020-07-01 17:36:14
【问题描述】:

textarea - 自动更新:

$('#editor').on('input', function(){
    let story = $(this).val();
    $.post('nts_pro.php', {fn: 'save', args: [story]});
});

在服务器端,上述值存储在表或文件系统中 - 使用php

这在克罗地亚非常有效(我的主机提供商在克罗地亚)。
在斯洛伐克 - 这可行,但......并非总是如此
在加拿大 - 我可以说 - 这行不通。

我向我的主机提供商询问了镜像服务器 - 答案是 - 我们没有镜像服务器。
其他几家托管公司也给出了相同的答案

那么,在编码级别或其他方面,如何在全球范围内保留此功能?

【问题讨论】:

  • 不起作用 不是很有帮助。你有错误吗?日志中是否有任何内容可以确定哪些内容不起作用以及为什么它可能不起作用
  • 当你说加拿大不工作时,它实际上在做什么,或者说它不工作时作为镜像服务器不应该阻止它在其他国家工作。
  • @imvain2 不要认为 OP 有镜像服务器。除了让生活变得更加复杂之外,我不确定是否会做任何其他事情,无论如何都要保持它们都是最新的
  • @RiggsFolly, @i 没有错误 - 至少在控制台和 php 级别。只是该值没有保存在服务器上,有时甚至在 10 秒后。

标签: javascript php server


【解决方案1】:

如果我理解正确,你应该看看 WebSockets。

向服务器发出 AJAX 调用以进行更新是一个坏主意,因为如果多个人不断进行 AJAX 调用以进行更新,它将占用您的所有资源。

我个人运行 NodeJS WebSocket 服务器 (socket.io) 并通过该服务器进行所有通信。

这允许用户快速发送信息并让服务器通知所有连接的用户这些更改。

Socket.io 的一些教程:

https://www.youtube.com/watch?v=vQjiN8Qgs3c

https://www.youtube.com/watch?v=tHbCkikFfDE

https://www.youtube.com/watch?v=75CCxIBs4Ak

【讨论】:

  • 嗯,谢谢,我会试试 - 不知道这种可能性。但这里的问题不是同时有很多用户。到目前为止,最多 3 个用户。
  • 根据您的服务器速度和资源,有时只有一个用户可能会给您带来这些问题。您解决的位置问题是 - 您离服务器越远,检索信息通常需要更长的时间。如果我对您的网站的想法正确,那么人们正在同一个文本区域内写作,并且它应该在有人打字时更新。 Websockets 是要走的路。
猜你喜欢
  • 2020-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多