Laravel 5.3从ajax加载数据(很多数据)
你好,我做了一个管理员面板来控制我的vps,专用服务器,所以我有很多数据fe cpu使用情况,内存使用情况,磁盘存储使用情况,负载等我使用这个进度条是这样的:Laravel 5.3从ajax加载数据(很多数据)
<li class="content"> <span>Cpu usage </span>
<div class="progress progress-mini progress-danger active progress-striped">
<div style="width: 99%;" class="bar"></div>
</div>
<span class="percent">87%</span>
<div class="stat">Cores: 100</div>
</li>
,我想用Ajax加载这个(我知道该怎么做) 但
Route::get('/ajax/cpuUsage',function(){
//mysql query here
return response()->json('MyData');
});
,但是当我有我的第10名观众这条路线将被称为十次,并且我有十个请求每fe 5sec是一个小的ammount,但是当我哈哈有1k观众可以被杀。所以我想缓存数据,但laravel缓存分钟1分钟,我该怎么办?索里对我的英语,但我想你可以undestard我说什么:)
您可以使用Ajax这样的:
$(function() {
$.ajax({
url: '/ajax/cpuUsage',
type: "GET",
success: function (data) {
console.log(data);
// do some logic here...
}
});
});
你或许应该将你的逻辑CPU使用率数据提取到一个控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UsageController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
// logic here
return response()->json($mydata);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
然后让你的路由/ web.php路线是这样的:
Route::get('/ajax/cpuUsage', '[email protected]');
是的,我知道,但是当我打电话/ ajax/cpuUsage,我的路由功能将作出查询,所以如果我已经在页面1k的vievers这个功能被称为1k次是正确的?如果是正确的,那么对于我的数据库是很多的;/ – lenyAxe
我不认为你真的需要担心这一点。但是你可以缓存查询$ users = DB :: table('cpuUsage') - >记住(3) - > get();这样你的数据库就不会被淹没。我相信如果您有一千个用户,您的查询将每三分钟运行一次或您设置的任何内容。如果他们不断从这条路线获取数据。 –
好吧,我发现我可以把缓存记住浮动,所以我让: $ time = Cache :: remember('key',0.08,function(){ 返回Carbon :: now() - > second; }); 和这个缓存美元时间为5秒,所以对我来说是好的我想我会用这个查询:)但谢谢你的帮助:) – lenyAxe
这仅仅是想法,应该有人confir m,但我认为nginx而不是apache应该是有帮助的(我认为你有apache)。另一件事是使用节点js ...我怀疑PHP会适合在这里最好 –
缓存在这里没有意义,因为这样的“使用”统计数据是要显示在实时数据。 – Ohgodwhy
是的,但我想缓存5秒,所以我可以调用这个实时数据,我不能让每个用户1请求页面上,我该怎么办? – lenyAxe