【问题标题】:How can I keep a value for a variable in Javascript, even when the webpage reloads?即使网页重新加载,如何在 Javascript 中保留变量的值?
【发布时间】:2012-02-06 07:35:47
【问题描述】:

我是一名刚接触网络编程的大学生,最近我可以说是“碰壁”了。

很难解释我的问题,因为我不了解正在发生的一切,但一位朋友将我推荐到了这个网站,我希望这里的指导能给我指明正确的方向。

这就是我想要做的:创建一个可以通过网页通过多台计算机访问的库存,并且每个用户都可以编辑。

我已经做了什么:我已经创建了 HTML 页面并添加了 Javascript。 Javascript 与库存中的物品数量进行交互,用户可以在提取物品或添加物品时更改特定物品的数量。但是,当页面重新加载时,数字会恢复为默认值零。

我研究过通过 Javascript 编辑 cookie,但这只适用于单台计算机。 “window.name”也有同样的问题。我稍微查看了数据库,然后打了个寒颤,迅速关上了门。如果数据库是唯一的选择,那么有人可以指点我的数据库初学者教程吗?

从我的角度来看,我遇到的主要问题是在网页上修改 Javascript 中的变量,然后以某种方式将该变量保存到一个位置的文档中。这样,连接到该网络的每台计算机都可以访问变量并根据需要修改它们。

我将不胜感激在这件事上的任何帮助!

【问题讨论】:

标签: javascript html database variables reload


【解决方案1】:

在我看来,我遇到的主要问题是在 网页上的 Javascript,然后以某种方式将该变量保存到 文件在一个位置。这样每台计算机都连接到那个 network 可以访问变量并根据需要进行修改。

我的朋友,那是一个数据库。是的,数据库就是解决方案。关于Web开发首先需要了解的是有两种:客户端和服务器端。 Javascript 是客户端开发,这意味着它可以在用户的​​浏览器上运行。您在客户端有一个变量,但只有该客户端可以看到它。服务器端不同。它仅存在于服务器上。您的服务器将您的页面(以及来自数据库或其他任何内容的任何内容)“提供”给客户端。因此,所有客户端(您想要的)都可以看到服务器上的任何更改。要对服务器端进行编程,您必须使用除 javascript 之外的另一种语言(您可以使用 node.js,但这与客户端 javascript 完全不同)。其他语言包括PHP、Java、C#等。

因此,您需要查找服务器端脚本。

【讨论】:

  • 叹息哦,好吧。它是一个数据库。谢谢您的回答!我确实忘记提及我使用Abyss Web Server 作为库存页面的广播服务器。但是当谈到服务器端脚本时,我几乎一无所知。你对从哪里开始有什么建议吗?据我所见,数据库在被多个用户编辑时会出现问题。
  • @JacobA.Bridges 我感觉到你的痛苦 :P 但它绝对值得学习,对于任何严肃的 Web 开发都是必要的。祝你好运!哦!如果您确实遇到任何问题,请不要犹豫在这里寻求帮助:)
  • 感谢您的评论和鼓励。我在上面编辑了我的评论,因为它过早地发布了哈哈。
  • @JacobA.Bridges 不客气。 :) 不幸的是,在客户端开发方面,我完全是个菜鸟(我最近才开始学习它),但 PHP 可能是最容易开始学习的。它是跨平台的,具有出色的文档,并且易于设置。您可以在 Google 上搜索 LAMP(适用于 Linux)或 WAMP(适用于 Windows),以获得在您的个人计算机上运行的服务器。从那里开始,玩得开心,你会很快学会它。 :)
【解决方案2】:

很抱歉告诉您这一点,但要拥有您想要的集中式存储,您需要一台服务器。 JavaScript 曾经/仍然是客户端,因此不可能同时为多个人工作。

为此,您需要一台服务器。本地存储无法正常工作,因为不是所有人都会拥有相同的数据。

【讨论】:

  • 目前我使用Abyss Web Server 作为服务器。但就服务器端脚本而言,我有丰富的经验。有什么好的想法可以从哪里开始?
  • 在客户端查找 AJAX,对于服务器端 PHP 就足够了。 AWS 甚至支持它:aprelium.com/abyssws/php.html
【解决方案3】:

您将需要一种后端语言,

如php、asp、.net、java等

使用这种后端语言,您将能够查询数据库,例如 mysql 数据库,

我建议你看看 php 和 mysql,因为它们都是免费的:

http://php.net, http://mysql.com

为了让您的环境能够快速调试而不是用于生产,请尝试 WAMP:

http://www.wampserver.com/en/

【讨论】:

  • XAMPP。这些“预建”堆栈将为您提供一个能够非常快速地托管 PHP(和 MySQL 等等!)的网络服务器。安装、运行、访问localhost并开始播放。
【解决方案4】:

您可以避免拥有自己的数据库并将库存数据存储在某些云存储中,例如 Google 电子表格。但这当然也需要一些学习。

如果您有 Google 帐户,最简单的做法是创建一个适合存储库存的电子表格,然后从该电子表格生成一个网络表单。最后,只需将生成的表单嵌入到您的 html 中,您就可以开始了。库存中的所有更改都将反映在 Google 文档的电子表格中。

【讨论】:

    【解决方案5】:

    实现共享库存应用程序有多个部分。在最高级别,您可以将其分解为在浏览器和服务器之间传输数据(客户端-服务器通信,这将基于 HTTP 并包括 AJAX 等技术)以及在请求之间共享数据。前者之前已经在 SO 上直接介绍过很多次(请参阅页面右侧“已链接”部分中的链接问题)。后者也有介绍,但可能没有那么直接,所以信息比较分散。

    两者的确切设计和实现取决于您可用的服务器端技术。 ASP.Net 方法与 PHP 方法完全不同,而 PHP 方法又与 JSP 方法不同。每个都有不同的方式以可供多个用户访问的方式保存数据。一些基本方法是shared memory、文件和(正如您已经提到的)数据库。

    在回避databases 之前,请记住必须执行许多棘手的data related tasks。如果您不使用数据库,则需要自己实现这些。最后,您将最终实现某种数据库,它可能具有更少的功能、更多的错误、性能更差,并且需要其他可能从事该项目的开发人员(项目的寿命可能比您预期的要长)首先了解您的数据存储系统。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多