【问题标题】:Viewing javascript variable from any browser从任何浏览器查看 javascript 变量
【发布时间】:2019-06-18 12:16:55
【问题描述】:

我在 Javascript 中有一个变量,它是通过从 HTML 中读取一个数字、向其中添加一个数字然后将其返回到 HTML 来创建的。

我想让它无论您是什么浏览器/什么用户,您都可以看到最新版本的变量。目前,如果我刷新页面,则数字将重置为 0(默认值)。我想要这样,如果我将号码更新为1,当其他人从另一个浏览器查看它时,他们也会看到1,而不是0

我已经看到 cookie 是一种选择,但我认为 cookie 只是客户端?所以这意味着只有我会看到变量的最新版本。

我看到会话是另一种选择,会话是服务器端的吗?他们会做我追求的工作吗?

还有其他我没有考虑过的方法吗?

提前致谢

【问题讨论】:

  • 会话不能跨浏览器工作。会话是浏览器本地的。
  • 您需要在服务器端执行此操作
  • @MonicaAcha 您始终可以在登录或其他操作时将该会话恢复到新浏览器。

标签: javascript html session cookies


【解决方案1】:

我想让它不管你是什么浏览器/什么用户,你都能看到最新版本的变量。

您需要将更新从浏览器发送到服务器,然后让该服务器将您的更新转发给所有其他客户端。如何做到这一点有很多选择,有各种权衡和复杂性。

一种方法是简单地获取该号码并将其发送到服务器。然后,在下一个页面加载时,服务器将该新数字注入它输出的页面(或者它通过 API 调用、通过 AJAX、通过 Fetch API 或服务器发送的事件、WebSocket 等来提供它)。但是,如果您这样做,您将需要决定如何处理并发。如果两个人同时加载页面会怎样?

您描述的通用系统称为Operational Transform,这是一个您现在可能不想进入的兔子洞。只要明白,没有什么魔法可以同时完美地同步地球上的事物。您的系统必须以某种方式考虑固有延迟。

我看到 cookie 是一种选择,但我认为 cookie 只是客户端?

是的,cookie 是客户端的。它们会随每个请求一起发送到服务器,但这对您来说不是一个有用的工具,除了会话识别。

我看到会话是另一种选择,会话是服务器端的吗?

它们可以,但您需要找到一种方法来了解用户在浏览器之间的情况。通常,会话 ID 存储在 cookie 中。

【讨论】:

  • 如果我要将文件放在 SFTB 客户端上。从技术上讲,它会“一直”在线吗?所以 html 总是显示变量的最新版本?或者它不是这样工作的? (抱歉,如果我的术语不正确,只是想弄清楚它。)
  • @JackU 我不知道什么是 SFTB 客户端。
猜你喜欢
  • 1970-01-01
  • 2011-05-04
  • 2011-01-26
  • 1970-01-01
  • 1970-01-01
  • 2020-06-16
  • 1970-01-01
  • 2011-10-16
  • 1970-01-01
相关资源
最近更新 更多