【发布时间】:2021-12-30 23:09:10
【问题描述】:
JavaScript:
const XHR = new XMLHttpRequest();
function sendData(data) {
XHR.open('POST', 'savedata.php');
XHR.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
XHR.send('data=' + JSON.stringify(data);
}
PHP:
if (isset($_POST['data'])) {
if (file_exists('data.json')) {
$file = file_get_contents('data.json');
$accumulatedData = json_decode($file);
$data = json_decode($_POST['data']);
array_push($accumulatedData, $data);
$encodedAccumulatedData = json_encode($accumulatedData);
file_put_contents('data.json', $encodedAccumulatedData);
}
}
如果数据传输之间的间隔很短,数据就会丢失。如何预防?
【问题讨论】:
-
您担心上传的哪一部分?您是否因为暂时失去网络覆盖而担心传输错误?
-
我并不担心,但我实际上已经注意到有一些数据对象没有存储在 JSON 数组中。数据传输之间的超时(例如 100 毫秒)不会发生这种情况。说实话,不知道是客户端还是服务器端造成的。
标签: javascript php json ajax