【发布时间】:2014-08-21 08:37:36
【问题描述】:
我遇到了性能优化问题。目前在 ANT Galio 浏览器上编写复印机应用程序。问题是这不允许使用 mousemove 事件,但事件 mouseover 工作得很好。我必须写一个运动感知的隐形网格。由于浏览器不知道如何使用 Alpha 通道,因此必须在一个透明像素中使用带有图片的背景。浏览器仅支持 CSS2 和 ecmaScript1.6。问题是网格工作正常,但如果加载严重,则应用程序开始变慢,但如果对 mousemove 的相同操作在模拟器上一切正常,但在它自己的单元上却不工作。
鼠标悬停事件处理程序:
function _onMouseOverSubTile (e) {
var tempSubTile = e.target,
myData = getData(tempSubTile),
myGrid = myData.grid,
myCallBack = myGrid.callBack;
if (myCallBack) {
var tempSubTile = e.target,
mySubTile = myData.tile;
subTileOffsetLeft = mySubTile.left,
subTileOffsetTop = mySubTile.top;
myCallBack(
//x
myGrid.viewPortOffsetLeft +
myGrid.layerLeft +
myGrid.currentTileOffsetLeft + .
subTileOffsetLeft +
myGrid.subTileWidth / 2,
//y
myGrid.viewPortOffsetTop +
myGrid.layerTop +
myGrid.currentTileOffsetTop +
subTileOffsetTop + myGrid.subTileHeight / 2);
};
};
【问题讨论】:
-
也许浏览器冻结是因为收集了偏移数据,这就是重绘整个窗口的原因。有趣的是,如果计时器的所有计算都延迟,它会阻止浏览器挂起吗?
标签: javascript html css performance dom-events