Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel:我可以缓存一个查询,然后根据时间和用户密钥使用jquery/javascript显示结果吗?_Javascript_Jquery_Laravel_Caching - Fatal编程技术网

Laravel:我可以缓存一个查询,然后根据时间和用户密钥使用jquery/javascript显示结果吗?

Laravel:我可以缓存一个查询,然后根据时间和用户密钥使用jquery/javascript显示结果吗?,javascript,jquery,laravel,caching,Javascript,Jquery,Laravel,Caching,当查询中的特定事件(行)满足以下两个条件时,我希望触发一条flash消息: 时间(“PropTime”)在到期后5分钟内 用户('userID')与行关联 与其为每个用户不断地查询数据库,我希望每小时生成一个全局查询,列出所有即将发生的事件(使用PropTime和userID)并缓存它(使用Laravel内置的'Remember()'方法),然后每3秒左右搜索一次结果列表(使用jquery或javascript)以确定事件(并触发闪光信息) 但我不知道如何使用jquery/javascript访

当查询中的特定事件(行)满足以下两个条件时,我希望触发一条flash消息:

  • 时间(“PropTime”)在到期后5分钟内
  • 用户('userID')与行关联
  • 与其为每个用户不断地查询数据库,我希望每小时生成一个全局查询,列出所有即将发生的事件(使用PropTime和userID)并缓存它(使用Laravel内置的'Remember()'方法),然后每3秒左右搜索一次结果列表(使用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);
            }
        }
    });