pagespeed分数统计和搜索

hotfix/远程访问多媒体中心
尹诚诚 8 years ago
parent a90c87a32d
commit db4fac8199

@ -11,7 +11,27 @@ class Index extends CI_Controller {
} }
public function index() { public function index() {
$this->permission->is_admin();
$data = array();
$data['score_data'] = $this->PageSpeedData_model->score_chart($this->config->item('site_code'));
$this->load->view('bootstrap3/header', $data);
$this->load->view('welcome'); $this->load->view('welcome');
$this->load->view('bootstrap3/footer');
}
//根据分数段来查询页面
public function search_score() {
$this->permission->is_admin();
$data = array();
$device = $this->input->post('device');
$start_score = $this->input->post('start_score');
$end_score = $this->input->post('end_score');
$data['score_data_list'] = $this->PageSpeedData_model->search_score_list($start_score, $end_score, $device, $this->config->item('site_code'));
if (empty($data['score_data_list'])) {
echo json_encode('没有找到数据');
} else {
echo json_encode($this->load->view('search', $data, true));
}
} }
//自动抓取分数和排名 //自动抓取分数和排名
@ -20,11 +40,13 @@ class Index extends CI_Controller {
$this->PageSpeedData_model->insert_list($sitecode); $this->PageSpeedData_model->insert_list($sitecode);
$update_list = $this->PageSpeedData_model->get_update_list($sitecode, 2); $update_list = $this->PageSpeedData_model->get_update_list($sitecode, 2);
if (empty($update_list)) { if (empty($update_list)) {
echo 'all done!'; echo'all done!';
return; return;
} }
foreach ($update_list as $item) { foreach ($update_list as $item) {
$this->run($item->psd_URL, $item->psd_SiteCode); $this->run($item->psd_URL, $item->
psd_SiteCode);
} }
} }
@ -37,7 +59,8 @@ class Index extends CI_Controller {
} }
$pagespeed_data = $this->PageSpeedData_model->detail($psd_URL, $psd_SiteCode); $pagespeed_data = $this->PageSpeedData_model->detail($psd_URL, $psd_SiteCode);
if (!empty($pagespeed_data)) { if (!empty($pagespeed_data)) {
echo json_encode(array('result' => 'ok', 'data' => 'M:' . $pagespeed_data->psd_MobileScore . ',D:' . $pagespeed_data->psd_DesktopScore)); echo json_encode(array('result' => 'ok', 'data' => 'M:' . $pagespeed_data->psd_MobileScore . ',D:' . $pagespeed_data->
psd_DesktopScore));
} }
} }
@ -47,6 +70,7 @@ class Index extends CI_Controller {
$psd_SiteCode = $this->input->get_post('psd_SiteCode'); $psd_SiteCode = $this->input->get_post('psd_SiteCode');
if (empty($psd_URL) || empty($psd_SiteCode)) { if (empty($psd_URL) || empty($psd_SiteCode)) {
echo json_encode(array('result' => 'error', 'data' => 'url或站点为空')); echo json_encode(array('result' => 'error', 'data' => 'url或站点为空'));
return false; return false;
} }
} }

@ -56,7 +56,7 @@ class PageSpeedData_model extends CI_Model {
ORDER BY ORDER BY
ic.ic_datetime ASC ic.ic_datetime ASC
"; ";
$this->INFO->query($sql,array($psd_SiteCode)); $this->INFO->query($sql, array($psd_SiteCode));
} }
public function get_update_list($psd_SiteCode, $topnum = 3) { public function get_update_list($psd_SiteCode, $topnum = 3) {
@ -124,4 +124,51 @@ class PageSpeedData_model extends CI_Model {
} }
} }
public function search_score_list($start_score, $end_score, $psd_SiteCode, $device = 'moblie') {
$this->init();
$this->topnum = 50;
$this->where = ' AND psd.psd_SiteCode=' . $this->INFO->escape($psd_SiteCode);
if ($device == 'moblie') {
$this->where = " AND psd.psd_MobileScore BETWEEN $start_score AND $end_score ";
$this->orderby = ' ORDER BY psd_MobileScore ASC ';
} else {
$this->where = " AND psd.psd_DesktopScore BETWEEN $start_score AND $end_score ";
$this->orderby = ' ORDER BY psd_DesktopScore ASC ';
}
return $this->get_list();
}
//分数段统计
public function score_chart($psd_SiteCode) {
$sql = "
SELECT COUNT(psd.psd_id) AS [page_count]
,AVG(psd.psd_DesktopScore)AS [d_avg]
,COUNT(CASE WHEN psd.psd_DesktopScore BETWEEN 96 AND 100 THEN 1 END) AS [d96_100]
,COUNT(CASE WHEN psd.psd_DesktopScore BETWEEN 90 AND 95 THEN 1 END) AS [d90_95]
,COUNT(CASE WHEN psd.psd_DesktopScore BETWEEN 86 AND 89 THEN 1 END) AS [d86_89]
,COUNT(CASE WHEN psd.psd_DesktopScore BETWEEN 80 AND 85 THEN 1 END) AS [d80_85]
,COUNT(CASE WHEN psd.psd_DesktopScore BETWEEN 70 AND 79 THEN 1 END) AS [d70_79]
,COUNT(CASE WHEN psd.psd_DesktopScore BETWEEN 60 AND 69 THEN 1 END) AS [d60_69]
,COUNT(CASE WHEN psd.psd_DesktopScore<60 THEN 1 END) AS [d60_0]
,AVG(psd.psd_MobileScore)AS [m_avg]
,COUNT(CASE WHEN psd.psd_MobileScore BETWEEN 96 AND 100 THEN 1 END) AS [m96_100]
,COUNT(CASE WHEN psd.psd_MobileScore BETWEEN 90 AND 95 THEN 1 END) AS [m90_95]
,COUNT(CASE WHEN psd.psd_MobileScore BETWEEN 86 AND 89 THEN 1 END) AS [m86_89]
,COUNT(CASE WHEN psd.psd_MobileScore BETWEEN 80 AND 85 THEN 1 END) AS [m80_85]
,COUNT(CASE WHEN psd.psd_MobileScore BETWEEN 70 AND 79 THEN 1 END) AS [m70_79]
,COUNT(CASE WHEN psd.psd_MobileScore BETWEEN 60 AND 69 THEN 1 END) AS [m60_69]
,COUNT(CASE WHEN psd.psd_MobileScore<60 THEN 1 END) AS [m60_0]
FROM PageSpeedData psd
WHERE 1=1
AND psd.psd_SiteCode=?
";
$query = $this->INFO->query($sql, array($psd_SiteCode));
if ($query->num_rows() > 0) {
$row = $query->row();
return $row;
} else {
return FALSE;
}
}
} }

@ -0,0 +1,43 @@
<?php
foreach ($score_data_list as $key => $item) {
}
?>
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th class="col-sm-1">#</th>
<th class="col-sm-3">页面</th>
<th class="col-sm-1">移动端</th>
<th class="col-sm-1">桌面端</th>
<th class="col-sm-2">更新时间</th>
<th class="col-sm-2">操作</th>
</tr>
</thead>
<tbody>
<?php
$site_url = rtrim($this->config->item('site_url'), '/');
if (!empty($score_data_list)) {
foreach ($score_data_list as $key => $item) {
?>
<tr>
<td><?php echo ++$key; ?></td>
<td><?php echo $item->psd_URL; ?></td>
<td><?php echo $item->psd_MobileScore; ?></td>
<td><?php echo $item->psd_DesktopScore; ?></td>
<td><?php echo date('Y-m-d', strtotime($item->psd_Datetime)); ?></td>
<td>
<a href="<?php echo $site_url . $item->psd_URL ?>" target="_blank">查看页面</a> | <a href="https://developers.google.com/speed/pagespeed/insights/?url=<?php echo urlencode($site_url . $item->psd_URL); ?>" target="_blank">Google insights</a>
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
</div>

@ -1,22 +1,80 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script type="text/javascript" src="/js/highcharts/highcharts.js"></script>
<html xmlns="http://www.w3.org/1999/xhtml"> <script type="text/javascript">
<head> $(function() {
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> $('#score_chart').highcharts({
<meta http-equiv="Expires" CONTENT="0"/> chart: {type: 'column'},
<meta http-equiv="Cache-Control" CONTENT="no-cache"/> title: {text: '网页性能分数分布图'},
<meta http-equiv="Pragma" CONTENT="no-cache"/> subtitle: {
<title>HTML-Compressor</title> text: '移动端平均分:<?php echo $score_data->m_avg; ?> | 桌面端平均分:<?php echo $score_data->d_avg; ?> 总页面数:<?php echo $score_data->page_count; ?>'
</head> },
<script type="text/javascript"> xAxis: {
categories: [
</script> '60分以下',
<body> '60-69分',
<h1>页面样式精简</h1> '70-79分',
<form name="form_htmlsource" id="form_htmlsource" action="<?php echo site_url('apps/htmlcompressor/index/optimize'); ?>" method="post"> '80-85分',
<input type="text" name="websitehost" id="websitehost" style="width:200px;" placeholder="域名" /><br/><br/> '86-89分',
<textarea name="htmlsource" id="htmlsource" rows="22" style="width:800px;" placeholder="网页代码" ></textarea> '90-95分',
<input type="submit"/> '96-100分'
</form> ],
crosshair: true
</body> },
</html> yAxis: {
min: 0,
title: {
text: '网页数量'
}
},
plotOptions: {
column: {
dataLabels: {
enabled: true
},
enableMouseTracking: true
}
},
series: [
{name: '移动', data: [<?php echo $score_data->m60_0 . ',' . $score_data->m60_69 . ',' . $score_data->m70_79 . ',' . $score_data->m80_85 . ',' . $score_data->m86_89 . ',' . $score_data->m90_95 . ',' . $score_data->m96_100; ?>]}
, {name: '桌面', data: [<?php echo $score_data->d60_0 . ',' . $score_data->d60_69 . ',' . $score_data->d70_79 . ',' . $score_data->d80_85 . ',' . $score_data->d86_89 . ',' . $score_data->d90_95 . ',' . $score_data->d96_100; ?>]}
]
});
});
</script>
<div id="score_chart" ></div>
<legend>根据分数搜索页面</legend>
<form class="form-inline" method="post" name="form_score_search" id="form_score_search" action="<?php echo site_url('apps/pagespeed/index/search_score'); ?>">
<div class="form-group">
<label for="exampleInputEmail1"></label>
<input type="number" class="form-control" id="exampleInputEmail1" name="start_score" placeholder="开始分数">
<input type="number" class="form-control" id="exampleInputPassword1" name="end_score" placeholder="结束分数">
<select class="form-control" name="device">
<option value="mobile">Mobile</option>
<option value="desktop">Desktop</option>
</select>
</div>
<button type="button" class="btn btn-default" onclick="submit_search();">搜索</button>
</form>
<div id="search_result_box"></div>
<script type="text/javascript">
function submit_search() {
$('#form_score_search').ajaxSubmit({
success: function(data, textStatus) {
$('#search_result_box').html(data);
},
error: function(msg) {
alert('\u53d1\u751f\u9519\u8bef\uff0c\u8bf7\u8054\u7cfbYCC...');
},
dataType: 'json',
timeout: 30000
});
return false;
}
</script>

@ -73,11 +73,12 @@
更多<b class="caret"></b> 更多<b class="caret"></b>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="http://www.arachina.com/html-tag-quick-query.htm"></a>html知识</li> <li><a href="<?php echo site_url('apps/pagespeed') ?>">页面性能分析</a></li>
<li><a href="<?php echo site_url('seo') ?>">SEO管理</a></li> <li><a href="<?php echo site_url('seo') ?>">SEO管理</a></li>
<li> <a href="<?php echo site_url('thirdparty/public/infopayauthor') ?>">打赏统计</a></li> <li> <a href="<?php echo site_url('thirdparty/public/infopayauthor') ?>">打赏统计</a></li>
<li> <a href="<?php echo site_url('thirdparty/form') ?>">表单管理</a></li> <li> <a href="<?php echo site_url('thirdparty/form') ?>">表单管理</a></li>
<li><a href="<?php echo site_url('thirdparty/advertise') ?>">广告管理</a></li> <li><a href="<?php echo site_url('thirdparty/advertise') ?>">广告管理</a></li>
<li><a href="http://www.arachina.com/html-tag-quick-query.htm">html知识</a></li>
</ul> </ul>
</li> </li>

@ -77,6 +77,7 @@
更多<b class="caret"></b> 更多<b class="caret"></b>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="<?php echo site_url('apps/pagespeed') ?>">页面性能分析</a></li>
<li><a href="<?php echo site_url('seo') ?>">SEO管理</a></li> <li><a href="<?php echo site_url('seo') ?>">SEO管理</a></li>
<li> <a href="<?php echo site_url('thirdparty/public/infopayauthor') ?>">打赏统计</a></li> <li> <a href="<?php echo site_url('thirdparty/public/infopayauthor') ?>">打赏统计</a></li>
<li> <a href="<?php echo site_url('thirdparty/form') ?>">表单管理</a></li> <li> <a href="<?php echo site_url('thirdparty/form') ?>">表单管理</a></li>

Loading…
Cancel
Save