鼠标在页面上移动导致cpu狂飙

huangdh12 2010-02-02 12:34:56
页面都已经加载完了,但是鼠标在页面上移动一下,结果cpu暴涨。(有发生样式的改变)
这会不会跟css或者JavaScript有很大的关系?
...全文
227 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
xusheng1018 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 huangdh12 的回复:]
我也觉得应该是没影响的,但是页面都已经加载完成了(我们页面用了好几个iframe),和后台并没有什么需要交互的,
能影响cpu的应该就剩css和JavaScript了吧。
我把所有onmouse事件都删除了,但是还是狂飙
[/Quote]

不会是有缓存吧?你重新发布项目试试,把该删除的地方都删了,再不行,将你交叉颜色也删除试试。
jeff0002 2010-02-03
  • 打赏
  • 举报
回复
1.将文件保存看看大小,使用软件查看一下流量(主要是response的)
2.将代码逐句屏掉,找到问题地点(哈哈,麻烦,但很实惠啊)
3.更换浏览器,或者更换机器看看,是否其他原因引起

期望楼主成功解决问题,支持
kcage2214 2010-02-03
  • 打赏
  • 举报
回复
要全部的代码看完才能分析啊 这样怎么分析
huangdh12 2010-02-03
  • 打赏
  • 举报
回复
大家分析分析,或者提供一些思路。。谢谢了
huangdh12 2010-02-03
  • 打赏
  • 举报
回复
我也觉得应该是没影响的,但是页面都已经加载完成了(我们页面用了好几个iframe),和后台并没有什么需要交互的,
能影响cpu的应该就剩css和JavaScript了吧。
我把所有onmouse事件都删除了,但是还是狂飙
kcage2214 2010-02-03
  • 打赏
  • 举报
回复
iframe对CPU没什么影响
huangdh12 2010-02-03
  • 打赏
  • 举报
回复
我已经把所有的onmouseover和onmouseout删除了。但是cpu还是很高


对了 iframe对cpu的影响大吗?
xusheng1018 2010-02-03
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 kcage2214 的回复:]
JScript codefunction onmouseover_tableResult_tbody_td(){this.style.backgroundColor="#B2E5FC"}function onmouseout_tableResult_tbody_td(){this.style.backgroundColor='#eff7ff,#ffffff'.split(',')[this.parentNode.rowIndex%2]}

这个代码本身就有问题。用一个变量保存onmouseover时td原来的backgroundColor,然后改变这个td的backgroundColor。onmouseout的时候将backgroundColor置为原来变量保存的值就可以了。

你现在这个方法 每次onmouseout都要重新写全部TD的背景色。这代码谁写的 这么2!
[/Quote]
交叉颜色用css、js写一个就可以了,然后鼠标选中和鼠标离开焦点时,只针对该行颜色操作(让他变回原来的颜色就OK了),不要再遍历整个tr、td了,这样速度就快很多。
xusheng1018 2010-02-03
  • 打赏
  • 举报
回复
优化代码,多做一下判断,以减少遍历数量。
kcage2214 2010-02-03
  • 打赏
  • 举报
回复

function onmouseover_tableResult_tbody_td(){this.style.backgroundColor="#B2E5FC"} function onmouseout_tableResult_tbody_td(){this.style.backgroundColor='#eff7ff,#ffffff'.split(',')[this.parentNode.rowIndex%2]}


这个代码本身就有问题。用一个变量保存onmouseover时td原来的backgroundColor,然后改变这个td的backgroundColor。onmouseout的时候将backgroundColor置为原来变量保存的值就可以了。

你现在这个方法 每次onmouseout都要重新写全部TD的背景色。这代码谁写的 这么2!
qustgjk 2010-02-03
  • 打赏
  • 举报
回复
肯定是你的onmousemover引发的td的样式改变带来的资源的耗费,就想前面我用js对table利用冒泡法排序的时候一样,对表格的操作太多,又是行交换,又是样式改变什么的,那时候我用冒泡排序,40条记录还可以,多了就耗时很多,我认为你的情况和我的有点类似。
huangdh12 2010-02-03
  • 打赏
  • 举报
回复
问题继续中。。。 期待回复
loveunittesting 2010-02-02
  • 打赏
  • 举报
回复
js可能捕捉了onmousemove事件
VilenZYP 2010-02-02
  • 打赏
  • 举报
回复
你的数据量大了。。加载的TR也就多了。。然后需要处理的CSS也跟着加多了。。

建议样式直接写到TR里面。。不要用现在这种方式了。。

不过。。数据量大的JSP文件打开本身就需要一段时间。。

我曾经有过64M的HTML帐单文件。。直接打开。。练机器都死了。。
huangdh12 2010-02-02
  • 打赏
  • 举报
回复
数据量大了就挂了。
huangdh12 2010-02-02
  • 打赏
  • 举报
回复

.tableResult tbody tr{
/*background-color:expression(this.sectionRowIndex==0?"#0000ff":'#eff7ff,#ffffff'.split(',')[rowIndex%2]);*/
background-color:expression('#eff7ff,#ffffff'.split(',')[rowIndex%2]);

/*mouseover/mouseout等事件最好不要在css中用,因为它们会覆盖页面中定义的onmouseover/onmouseout等事件*/
mouseover:expression(onmouseover=onmouseover_tableResult_tbody_tr);
mouseout:expression(onmouseout=onmouseout_tableResult_tbody_tr);
}



function onmouseover_tableResult_tbody_td(){this.style.backgroundColor="#B2E5FC"}
function onmouseout_tableResult_tbody_td(){this.style.backgroundColor='#eff7ff,#ffffff'.split(',')[this.parentNode.rowIndex%2]}




感觉问题主要出在这里,就是说控制表格行的颜色。但是现在还不知道应该怎么修改
蛋黄车 2010-02-02
  • 打赏
  • 举报
回复
用ajax了?
JavaAlpha 2010-02-02
  • 打赏
  • 举报
回复
楼主 可以贴一下你的页面的代码看看
不然大家也不知道具体是怎么回事。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧