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

时间:2015-02-01 00:07:38

标签: javascript ajax laravel-4 eloquent settimeout

几个小时后我就陷入了这个问题。

我有一个网址

increase/1 

和路线

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

和控制器

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

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


渲染我的模板时,我想通过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>

呈现模板时,计数器会递增 - &gt;数据库已更新。


但我想称之为#34;脚本&#34;延迟。

setTimeout( pageViewIncrease, 290 );

使用超时时,计数器有时会增加有时不会

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

我真的不知道自己做错了什么:(。

谢谢

1 个答案:

答案 0 :(得分:0)

我解决了。

我发现“延迟请求内容”来自缓存。

enter image description here

然后我在“Problems with cached result when sending a XMLHttpRequest?”的帮助下编辑我的代码。

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

我的代码即使用

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