小心错误使用EasyUI 让网站性能减半
先不谈需求,和系统架构,直接上来就被抛来了一个问题----基础性能太差了,一个网页打开要好几秒。我了个天,我听了也简直不敢相信,难道是数据量特别大?还是其中业务逻辑特别复杂?
简单的介绍下,基础系统是我们整个高校云平台里一个子系统,整个平台用EJB来实现分布式,并且管理事务,系统内使用springMvc+spring+hibernate具体实现。由于不知道系统性能差到底出错在哪里,于是我们便首先从EJB入手,测试远程调用,然后进入JVM检测内存,接着对框架整体分析,业务逻辑整合分析,来来回回半个月,都没有找到问题所在。后台排查完了,只剩下前台(前台功力不够啊。),原来以为不可能出问题的前台,却是整个系统性能差的根源。
通过浏览器F12中的network我们可以清楚的看到一个简单的页面加载的时候不同模块消耗的时间等如下图:
看到这个图的时候我也惊呆了,怎么可能单个请求发送了三次?难道是业务需要?---都不是,是因为easyui datagrid 的使用不当,大家请看下面的代码:
Easyuidatagrid html代码:
给datagrid添加右击和双击操作代码:
原因推测:
页面加载的时候浏览器解析网页内容,这个时候url中的query请求发送一次,当浏览器解析到下面的js代码的时候,通过id选择器获得了datagrid这个时候浏览器再次解析datagrid,datagrid中存在url所以请求就被再次发送,两次添加方法额外多访问了两次。后来我又查看了其他的页面,发现几乎所有页面都是这么写的,导致页面加载额外访问多次(如果页面加载有3个请求,这样错误做出来就不得不访问9次。。。)。
解决办法:
Easyui的datagrid加载有两种方式,一种是通过js来加载,另一种是通过htmll来加载。上述错误应该是错误的将两种方式混合使用导致的。所以解决办法很简单,只要去除其中一种,只用一种加载方式即可。
1:全部改用js加载。(大家可以自行查看easyuiapi)
2:全部用html来写:
总结:
在没有对一个东西有了全面深入的了解的时候,不要着急否认它,多看看行业内其他人的使用或者理解,很多时候我们觉得一个东西有问题,很肯能是我们还不够了解,其实,有问题的是我们自己啊。
小心错误使用EasyUI 让网站性能减半的更多相关文章
- 基于Yahoo网站性能优化的34条军规及自己的见解
1.尽量减少HTTP请求次数 终端用户响应的时间中,有80%用于下载各项内容,这部分时间包括下载页面中的图像.样式表.脚本.Flash等.通过减少页面中的元素可以减少HTTP请求的次数,这是提高网页速 ...
- Yahoo!网站性能最佳体验的34条黄金守则(转载)
1. 尽量减少HTTP请求次数 终端用户响应的时间中,有80%用于下载各项内容.这部分时间包括下载页面中的图像.样式表.脚本.Flash等.通过减少页面中的元素可以减少HTTP请求的次数 ...
- Yahoo!网站性能最佳体验的34条黄金守则
Yahoo!的Exceptional Performance团队为改善Web性能带来最佳实践.他们为此进行了一系列的实验.开发了各种工具.写了大量的文章和博客并在各种会议上参与探讨.最佳实践的核心就是 ...
- 在线学习体验大PK 云智慧发布在线教育网站性能监测报告
互联网不但改变了我们的生活.娱乐和消费方式,也推动各行各业进行着快速变革,越来越多的职场人士必须通过不断的学习.充电才能跟上行业发展的步伐,获得职业的提升,而这也引发了国内教育市场的爆炸式发展.据统计 ...
- PerfMap – 显示前端网站性能的热力图插件
PerfMap 是用来分析前端性能,基于资源定时 API 生成网页资源加载的前端性能热图.热图的颜色和第一个毫秒值指示在什么时候页面的图像加载完毕,这是用户体验的一个很好的指标.括号中的第二个值是浏览 ...
- 网站性能工具Yslow的使用方法
Yslow是雅虎开发的基于网页性能分析浏览器插件,从年初我使用了YSlow后,改变了博客模板大量冗余代码,不仅提升了网页的打开速度,这款插件还帮助我分析了不少其他网站的代码,之前我还特意写了提高网站速 ...
- 网站性能优化(Yahoo 35条)
Yahoo 网站性能优化 35条 一.内容部分 尽量减少 HTTP请求 减少 DNS查找 避免跳转 缓存 Ajxa 推迟加载 提前加载 减少 DOM元素数量 用域名划分页面内容 使 frame数量最少 ...
- 【转】Yahoo!团队:网站性能优化的35条黄金守则
Yahoo!的 Exceptional Performance团队为改善 Web性能带来最佳实践.他们为此进行了一系列的实验.开发了各种工具.写了大量的文章和博客并在各种会议上参与探讨.最佳实践的核心 ...
- 教你50招提升ASP.NET性能(十八):在处理网站性能问题前,首先验证问题是否出在客户端
(29)Before tackling any website performance issue, first verify the problem isn’t on the client 招数29 ...
随机推荐
- SDN网络虚拟化、资源映射等相关论文粗读
1. Control Plane Latency with SDN Network Hypervisors: The Cost of Virtualization 年份:2016 来源:IEEE NE ...
- [2017BUAA软件工程]第0次作业
第一部分:结缘计算机 1. 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答) 选择计算机专业的一个重要原因是因为计算机专业的就业前景好,由于计算机本身具有的各种优点,现在几乎所有的 ...
- 服务器端发送邮件签名采用Data URI scheme包含图片
要在服务器端基于HTML,拼接邮件内容,原来用户使用outlook采用了邮件签名,签名里含有公司Logo的图片,Outlook的msg文件里是专有的cid:xxxx,这里借用Data URI sche ...
- C++ 动态内存分配(6种情况,好几个例子)
1.堆内存分配 : C/C++定义了4个内存区间: 代码区,全局变量与静态变量区,局部变量区即栈区,动态存储区,即堆(heap)区或自由存储区(free store). 堆的概念: 通常定义变量(或对 ...
- ios微信浏览器中video视频播放问题
微信ios只支持几种特定的视频格式,一般使用mp4格式的视频(腾讯官方就是用的这种视频格式)
- oracle小知识点
一 . procedure和function: procedure和function在语法上几乎完全一样,使用上却有小小的差别, procedure可以单独的调用 在命令行直接exec pro_xxx ...
- python列表和元组操作
列表 列表(list)是python以及其他语言中最常用到的数据结构之一.Python使用中括号[ ]来解析列表.列表是可变的(mutable)—可以改变列表的内容. 定义列表 names = ['m ...
- BZOJ3419[POI2013]taxis——贪心
题目大意: 一条线段有三个点,0为初始位置,d为出租车总部位置,m为家的位置,人要叫车,有n辆车可以提供,每辆车有一个路程上限,并且都从车站出发,叫的车行驶之后不必须回到车站,问最少叫几辆车. 一定能 ...
- BZOJ4946 NOI2017蔬菜(贪心+堆)
容易想到一个费用流做法:将每种蔬菜拆成p种,对应p个过期时间,每一种向可以卖的时间连边,第一次卖的奖励算在最晚过期的一种里.对于天数动态加点.不过这样边数太多了,因为第i天能卖的第i-1天一定能卖,可 ...
- easyui webapi
今天算是踩雷了.... 先说一下,由于项目需要,我目前开发PO模块, 由于需要提供手机端,所以我在mvc项目中创建了 webapi.提供手机端调用. 然后我就考虑,easyui也使用webapi来提 ...