gpt4 book ai didi

php - 为什么使用memcached有些数据没有存储在Session中?

转载 作者:搜寻专家 更新时间:2023-10-31 22:00:59 24 4
gpt4 key购买 nike

我正在尝试使用 Laravel5 和 Memcached 将一些数据写入 session 。没有 ajax 它工作正常,但我需要异步存储多个值。

这是我的示例 javascript 代码:

var i = 1;

for (i; i < 11; i++) {
var data = {
id: i,
data: 'data-' + i
}

$.ajax({
url: 'api/data',
method: 'POST',
data: data
});
}

这是我的示例 php 代码:

post('/api/data', function() {
$request = \Request::all();

\Session::put('key-'.$request['id'], $request['data']);
});

当我触发此 js 代码一次时,我没有将所有 10 个值写入 session

这是js代码完成输出后的dd(\Session::all()):

array:8 [▼
"_token" => "WUv8naiJT9PEHpG4b4moZyUcTfxy4YHhdBiluB7R"
"_previous" => array:1 [▶]
"flash" => array:2 [▶]
"key-2" => "data-2"
"key-5" => "data-5"
"key-6" => "data-6"
"key-7" => "data-7"
"key-9" => "data-9"
]

如果我多次触发 js 代码,我会存储所有 10 个值。

最佳答案

$.ajax 调用是异步的。

所以有些请求几乎是同时完成的。这就是为什么你在 session 中有随机更新数据的原因

取决于哪个请求最后有 session_write 和 read...

这是一个只有 2 个请求的时间表:

请求 1 个读取 session 请求 2 读取 session 请求 1 个写 session 请求 2 写入 session

在 session 数据中你只有:key-2 => data-2

关于php - 为什么使用memcached有些数据没有存储在Session中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29416291/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com