【发布时间】: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