首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么有些数据没有使用memcached存储在会话中?

为什么有些数据没有使用memcached存储在会话中?
EN

Stack Overflow用户
提问于 2015-04-02 23:06:11
回答 1查看 272关注 0票数 3

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

下面是我的示例javascript代码:

代码语言: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代码:

代码语言:javascript
复制
post('/api/data', function() {
    $request = \Request::all();

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

当我启动这段js代码一次时,我并没有将所有10个值都写到session中。

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

代码语言:javascript
复制
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个值。

EN

回答 1

Stack Overflow用户

发布于 2015-04-06 03:20:08

$.ajax调用是异步的。

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

取决于哪个请求让session_write最后一次读取...

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

请求1读取会话请求2读取会话请求1写入会话请求2写入会话

在会话数据中只有: key-2 \f25 => -2\f6数据

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29416291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档