Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery div.offsetWidth性能不佳_Jquery_Performance - Fatal编程技术网

jQuery div.offsetWidth性能不佳

jQuery div.offsetWidth性能不佳,jquery,performance,Jquery,Performance,我对jquery有一个奇怪的问题。我们正在尝试在非常旧的web应用程序中使用jQuery1.5.1。它只支持IE,并且总是以怪癖模式呈现(没有doctype元素) 除了一个问题外,jQuery工作正常。我注意到有一个函数运行缓慢。使用未压缩版本,我发现问题出在jQuery初始化函数中。下面的代码执行大约2秒 div.style.width = div.style.paddingLeft = "1px"; body.appendChild( div ); jQuer

我对jquery有一个奇怪的问题。我们正在尝试在非常旧的web应用程序中使用jQuery1.5.1。它只支持IE,并且总是以怪癖模式呈现(没有doctype元素)

除了一个问题外,jQuery工作正常。我注意到有一个函数运行缓慢。使用未压缩版本,我发现问题出在jQuery初始化函数中。下面的代码执行大约2秒

        div.style.width = div.style.paddingLeft = "1px";
    body.appendChild( div );
    jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2;

    if ( "zoom" in div.style ) {
        // Check if natively block-level elements act like inline-block
        // elements when setting their display to 'inline' and giving
        // them layout
        // (IE < 8 does this)
        div.style.display = "inline";
        div.style.zoom = 1;
        **jQuery.support.inlineBlockNeedsLayout = div.offsetWidth === 2;**
div.style.width=div.style.paddingLeft=“1px”;
附体儿童(div);
jQuery.boxModel=jQuery.support.boxModel=div.offsetWidth==2;
如果(“缩放”在div.style中){
//检查本机块级元素的行为是否与内联块类似
//将其显示设置为“内联”并给出
//他们的布局
//(即<8的人会这样做)
div.style.display=“inline”;
div.style.zoom=1;
**jQuery.support.inlineBlockNeedsLayout=div.offsetWidth==2**
粗体线条是问题所在

由于某些原因,在设置显示和缩放属性后,div.offsetLength需要大约2秒才能执行。第一次调用此属性(第三行)工作速度很快


我想知道是什么导致了这个问题,以及如何提高jQuery初始化的性能。触发怪癖模式是一件可怕的、可怕的、可怕的事情。
在怪癖模式下,jQuery被迫使用其他方法与DOM交互,这几乎肯定是IE中速度问题的原因



1-你真的应该升级到jq 1.6,因为1.5很匆忙,问题太多了,2-偏移长度?3-如果偏移宽度不是数字,它可能不会显示===2,也许你应该使用
parseInt()
或其他什么:)