Laravel 不要通过 XMLHttpRequest + Timeout 更新数据库模型

Laravel don't update DB model through XMLHttpRequest + Timeout

几个小时以来,我都被这个问题困住了。

我有一个url

increase/1 

和路线

Route::get('increase/{id}', '***Controller@action***');

和控制器

public function action***($id) {
    $model = ***::where***->first();
    $model->counter += 1;
    $model->save();
}

当我在浏览器中点击 url 时,计数器递增 -> 数据库更新。


当我的模板呈现时,我想通过 XMLHttpRequest 调用它 url。我在页面底部有一个脚本(xhr.timeout 不重要)。

<script>
function pageViewIncrease() {
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "{{ url() }}/increase/{{ id }}", true);
    xhr.timeout = 0;
    xhr.send(null);
}
    pageViewIncrease();
</script>

呈现模板时,计数器递增 -> 数据库更新。


但是我想延迟调用这个"script"。

setTimeout( pageViewIncrease, 290 );

如果超时,计数器 有时会递增有时不会

超时时间更长 (500,1000,...),Laravel 不再更新模型

我真的不知道我做错了什么:(.

谢谢

我解决了

我发现 "delayed request content" 来自缓存。

然后我在“”的帮助下编辑我的代码。

xhr.open("GET", "{{ url() }}/increase/{{ id }}?t=" + Math.random(), true);

而且我的代码在

下也能正常工作
setTimeout( pageViewIncrease, 3000 );