几个小时后我就陷入了这个问题。
我有一个网址
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 不再更新模型。
我真的不知道自己做错了什么:(。
谢谢
答案 0 :(得分:0)
我解决了。
我发现“延迟请求内容”来自缓存。
然后我在“Problems with cached result when sending a XMLHttpRequest?”的帮助下编辑我的代码。
xhr.open("GET", "{{ url() }}/increase/{{ id }}?t=" + Math.random(), true);
我的代码即使用
也能正常工作setTimeout( pageViewIncrease, 3000 );