Laravel:我可以缓存一个查询,然后根据时间和用户密钥使用jquery/javascript显示结果吗?
当查询中的特定事件(行)满足以下两个条件时,我希望触发一条flash消息:Laravel:我可以缓存一个查询,然后根据时间和用户密钥使用jquery/javascript显示结果吗?,javascript,jquery,laravel,caching,Javascript,Jquery,Laravel,Caching,当查询中的特定事件(行)满足以下两个条件时,我希望触发一条flash消息: 时间(“PropTime”)在到期后5分钟内 用户('userID')与行关联 与其为每个用户不断地查询数据库,我希望每小时生成一个全局查询,列出所有即将发生的事件(使用PropTime和userID)并缓存它(使用Laravel内置的'Remember()'方法),然后每3秒左右搜索一次结果列表(使用jquery或javascript)以确定事件(并触发闪光信息) 但我不知道如何使用jquery/javascript访
但我不知道如何使用jquery/javascript访问缓存结果,也不知道如何编写脚本,或者这是否可行。您可以这样做。Laravel方面:
Route::get('events/query', function() {
// Get the events that belong to the User
// where the PropTime is less than 5 minutes away
// and cache the returned events for 1 hour
$events = \Cache::remember('events', 60, function() {
return \App\Event::where('PropTime', '<', \Carbon\Carbon::now()->addMinutes(5)
->where('userID', \Auth::user()->id)
->get();
});
return response()->json($events);
});
Route::get('events/query',function()){
//获取属于用户的事件
//距离表演时间不到5分钟的地方
//并将返回的事件缓存1小时
$events=\Cache::memory('events',60,function()){
return\App\Event::where('PropTime','Thank',但是在Laravel端,我想加载事件,不管它们何时过期(或者可能加载下一个小时过期的事件),然后在JS/jQuery端按时进行过滤(接下来在我的应用程序中,用户有五分钟的时间来采取行动)。如果我以您的方式运行查询,我将不得不在所有用户中高频率重复它-这就是我想要避免的(我想限制为一个全局查询,然后根据用户/时间进行筛选,或者限制为一个特定于用户的查询,根据时间进行筛选)。
$.ajax({
url: '/events/query',
type: 'GET',
dataType: 'json',
success: function(data) {
// log the data so you can see how to
// get what parts you want with JS
console.log(data);
// loop through the events
for(var i = 0; i < data.length; i++) {
// the event name
console.log(data[i].name);
}
}
});