【问题标题】:Auto saving JAVASCRIPT data via AJAX to database通过 AJAX 将 JAVASCRIPT 数据自动保存到数据库
【发布时间】:2015-05-14 14:31:08
【问题描述】:

抱歉,如果这个特定问题之前已经解决,我到处寻找,但无法完全得到我正在寻找的答案!我不是专家,可以想象解决方案非常简单。

我的问题是:我有一些 php 和 javascript 代码在一个基于 html 的网站上工作,链接到一个数据库(读入数据并通过在脚本末尾调用一次的保存函数写出数据)。我需要 javascript 代码通过 Ajax 请求自动将自身保存/更新到 db,而无需继续运行页面。此处保存的数据需要由其他各种页面读取,并依赖于在其他地方提供正确的结果! (因此解决方案是让用户在后台保持页面打开 - 但也欢迎针对此单独问题提出建议!)

无论如何,目前我有:

 function sessionSave () {
    var newData = kpiCA.getData().concat(kpiHA.getData(),kpiStocks.getData(),kpiCV.getData(),kpiPD.getData());
    $.ajax({
      url: 'saveMain.php',
      type: 'POST',
      data: {'kpi': newData},
      success: function () {

      },
      error: function () {
        $console.text('Data Save Error');
      }
    });
  }
  sessionSave();

我已经看到了一些自动保存脚本和添加计时器等,但由于我是一个完全的菜鸟,非常感谢一些帮助,

谢谢大家!

【问题讨论】:

  • "无需继续运行页面" 不太确定我明白您的要求。即使没有访问者/用户,网站是否应该自动更新内容?如果是这样,javascript 似乎毫无意义——因为它只在客户端上运行。但请澄清您的要求。
  • 所以你想每 x 分钟运行一次sessionSave()?看这个话题stackoverflow.com/questions/2170923/…
  • 您好,感谢您的评论,抱歉有点不清楚!运行页面是指用户需要不断打开/重新加载页面以进行保存。如果用户不在,则不需要更新,它可以在用户打开所述页面时在后台运行。
  • 然后使用 setInterval 并将数据保存为@breq 提到的方法。
  • 是的,页面必须“打开”(在已查看或未查看的选项卡上)才能运行 Javascript。如果网页未打开,则 Javascript 无法运行。正如@Mackan 推断的那样,当用户不查看页面(即客户端)时需要完成的任何事情都可以在服务器端完成。

标签: javascript ajax database autosave saving-data


【解决方案1】:

基本上它只是计时器或间隔。例如:

window.setInterval(sessionSave, NUMBER_OF_SECONDS * 1000)
// where NUMBER_OF_SECONDS is, obviously, the number of seconds to repeat your function at

【讨论】:

  • 谢谢@Marius :) 完美
猜你喜欢
  • 2021-03-08
  • 2017-09-17
  • 2013-05-07
  • 2014-02-17
  • 2018-02-02
  • 1970-01-01
  • 2017-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多