使用nginx收集用户页面加载时间
2016-12-05 20:58
344 查看
最近老是有用户说,页面打开慢,但是自己打开又很快,所以想统计一下用户打开网站的时间,当然这个统计有点粗糙,但是也能说明一点问题
实现原理很简单,就是在header里面保存一下用js保存一下当前时间,然后在body结束前面再加一段js,加载耗时(ms) = 用当前时间 - header里面的时间,就得到了这个页面加载大概需要的时间,主要是页面内容、CSS、js这些加载所花的时间,ajax这里不统计,知道原理之后就简单了
这是header里面加的
这是body结束标签前的,主要用来做数据上传
通过加载图片的方式把数据上传到服务器,图片没有跨域问题,我这里主要只采集两个信息,一个是time,也就是时间,一个是当前页面的url,废话,没有url我怎么知道是哪个页面加载比较慢,还有一个参数是app,只要用来区分是那个网站,因为我部署了多个网站,所以加一个app标识,好过滤数据
服务端的nginx其实并没有一个叫做load.gif的图片,这个是我来搜集数据用的,代码就几行
其实这里什么都没做,直接返回了空内容,只是把日志写到了一个单独统计的log文件里面,好方便查看,有时间的话在lua里面处理一下,做个统计排序,做个数据可视化页面,就差不多了,最近用openresty做了两个网站,感觉还不错,nginx + lua 玩法很多。
实现原理很简单,就是在header里面保存一下用js保存一下当前时间,然后在body结束前面再加一段js,加载耗时(ms) = 用当前时间 - header里面的时间,就得到了这个页面加载大概需要的时间,主要是页面内容、CSS、js这些加载所花的时间,ajax这里不统计,知道原理之后就简单了
这是header里面加的
<script type="text/javascript">var loadTime = new Date().getTime()</script>
这是body结束标签前的,主要用来做数据上传
<script type="text/javascript"> (function(){var time = new Date().getTime()-loadTime;var args = ['time=' + time,'url=' + location.href,'app=d2VpeGlu'];var img = new Image(1, 1);img.src = 'http://www.test.com/load.gif?' + args.join("&");})() </script>
通过加载图片的方式把数据上传到服务器,图片没有跨域问题,我这里主要只采集两个信息,一个是time,也就是时间,一个是当前页面的url,废话,没有url我怎么知道是哪个页面加载比较慢,还有一个参数是app,只要用来区分是那个网站,因为我部署了多个网站,所以加一个app标识,好过滤数据
服务端的nginx其实并没有一个叫做load.gif的图片,这个是我来搜集数据用的,代码就几行
location = /load.gif { access_log logs/stat.log main; default_type image/gif; content_by_lua_block{ ngx.say("") } }
其实这里什么都没做,直接返回了空内容,只是把日志写到了一个单独统计的log文件里面,好方便查看,有时间的话在lua里面处理一下,做个统计排序,做个数据可视化页面,就差不多了,最近用openresty做了两个网站,感觉还不错,nginx + lua 玩法很多。
相关文章推荐
- 使用nginx收集用户页面加载时间
- 使用e-tag来加快页面加载速度和提高用户体验
- 使用Filter跟踪ASP.NET MVC页面加载时间
- Asp.net开发心得点滴[动态加载的用户控件使用事件委托,交给页面处理的事件无效问题]
- 如何使用FF的Firebug组件中的net工具查看页面元素加载消耗时间
- 使用Filter跟踪Asp.net MVC页面加载时间
- JSP Web 页面收集用户IP地址信息-聚合数据IP地址数据接口的使用
- 使用QTP统计页面加载时间(加载IE对象)
- 使用Filter跟踪Asp.net MVC页面加载时间
- 使用Loadrunner分别测量服务器响应时间及页面加载时间
- Nginx设置expires设定页面缓存时间 不缓存或一直使用缓存
- 使用Masterpage跟用户控件时,在指定页面的Head加载Javascript
- ajax异步加载页面,减少用户面对空白网页时间
- 【转】使用jquery实现图片预加载提高页面加载速度和用户体验
- 使用QTP统计页面加载时间
- 如何使用logcat记录所有页面的加载时间
- 实现session登陆时间的验证,验证用户登录页面的一个监听器
- SolpartMenu的使用:(二)、在ASP.NET页面中使用SolpartMenu控件之动态的加载数据库中的数据来生成菜单
- 注册页面中使用AJAX即时提醒用户能否注册成功
- 用户控件使用事件与调用页面交互