offsetLeft Javascript属性需要更多时间

offsetLeft Javascript property takes more time

本文关键字:时间 Javascript 属性 offsetLeft      更新时间:2023-09-26

offsetLeftJavascript属性需要更多时间。

offLeft=$('div')[0]。offsetLeft

在检查chrome中的评测时,我发现这个offsetLeft在运行我的代码时需要更多的时间。有没有替换offsetLeft属性的建议?

function firstcol() {
        var sheet = this.getSheet(), left, right, leftIdx, rightIdx, hScroll = this._hScroller(sheetIdx), colWtColl = sheet._colWidthCollection,
            hhandle = hScroll.element.find(".e-hhandle"), hsLeft = parseInt(**hhandle[0].offsetLeft**);
        left = hsLeft * hScroll._scrollData.onePx;
        right = (hsLeft + hhandle[0].offsetWidth) * hScroll._scrollData.onePx;
        leftIdx = this._sortProcess(colWtColl, left);
        sheet._leftCol = { idx: leftIdx, value: colWtColl[leftIdx] };
        rightIdx = this._sortProcess(colWtColl, right);
        sheet._rightCol = { idx: rightIdx, value: colWtColl[rightIdx] };
    }

在这个代码块中,运行需要1500ms。,offsetLft需要1100毫秒。我该如何减少这一点。此项的平均运行时间为350毫秒。

offset*属性要求页面流是最新的。如果您之前对DOM或样式进行了更改,使当前计算的流无效,那么获取offsetLeft将导致浏览器回流页面。回流需要时间。如果您以前没有做过这样的更改,那么offsetLeft可以使用当前页面流,而且速度很快。

因此,问题不在于offsetLeft本身,而在于自上一页回流以来它之前的JS。