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 );
几个小时以来,我都被这个问题困住了。
我有一个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 );