gpt4 book ai didi

javascript - 为什么 IE9 执行某些 JQuery 需要这么长时间?

转载 作者:行者123 更新时间:2023-11-29 18:31:05 24 4
gpt4 key购买 nike

我有一个应用程序在 ASPX 页面中为 HTML 表 (500x) 中的每个元素执行这段代码 (JQuery 1.4.2)

$(".ArtRow_" + artId).each(function () {  
if ($(this).find(".ArtOpen_" + artId).length <= 0) return;
.... };

省略带有 find 的行使该页面正常加载,但带有 find:

  • firefox 和 chrome:+- 3 秒
  • 在 IE9 中:+- 42 秒(在双核上使用 50% 的 CPU)

我在 IE 中做了一个配置文件,95% 的时间,IE 正在执行函数 CLASS ( call stack:find.f.filter.CLASS )

我试过了

  • 在查找中使用 Id
  • 使用固定类消除了字符串连接

无用(42 秒)

有人知道吗?提前致谢!

编辑:我现在确信 each 花费了这么长时间。我跳过了它,因为空代码块不需要 42 秒来加载。但是由于其中包含一些注释行,它又花了 42 秒,所以我猜这是某种不太智能的死代码检测。

根据明确请求:ArtRow 所在的 HTML

 <tbody>
<tr class="SB_ReceptielijstHeader">
<th>Artikel / Bestelling</th>
<th>Besteldatum</th>
<th>Pr. School</th>
<th>Pr. Levering</th>
<th class="Number">Aantal besteld</th>
<th class="Number">Aantal ontvangen</th>
</tr>

<tr class="SB_ReceptielijstArtikelHeader ArtRow_132109">
<td id="Titel_132109" class="Artikel" colspan="5">
<img src="images/SB/Icons/23-book.png" style="vertical-align:middle">&nbsp;9789030170433 - NANO 1</td>
<td class="Number ArtikelTotal">
<input type="hidden" value="132109" class="Artikel_Id">
<input type="hidden" value="" id="ArtLevLn_132109">
<input type="text" value="12" style="text-align:right" size="4" id="Aantal_132109" name="Aantal_132109" maxlength="4">
</td>
</tr>
<tr class="SB_ReceptielijstRow ArtRow_132109 ArtRowInvisible">
<td>Bestelling 81 / Lijn </td>
<td>02/07/2010</td>
<td>24,05</td>
<td>22,85</td>
<td class="ArtOpen_132109 Number">
</td>
<td id="ArtToew__132109" class="ArtToew ArtToew_132109 Number">
<div style="display:none" class="ArtBestLn">
<input type="hidden" value="">
</div>
<input type="text" style="text-align:right" size="4" id="Aantal_" name="Aantal_" maxlength="4">
</td>
</tr>

<tr class="SB_ReceptielijstArtikelHeader ArtRow_134399">
<td id="Titel_134399" class="Artikel" colspan="5">
<img src="images/SB/Icons/23-book.png" style="vertical-align:middle">&nbsp;9789045533322 - HANDELWIJS 3 INCL CDROM HERWERKT 2010</td>
<td class="Number ArtikelTotal">
<input type="hidden" value="134399" class="Artikel_Id">
<input type="hidden" value="" id="ArtLevLn_134399">
<input type="text" value="25" style="text-align:right" size="4" id="Aantal_134399" name="Aantal_134399" maxlength="4">
</td>
</tr>
<tr class="SB_ReceptielijstRow ArtRow_134399 ArtRowInvisible">
<td>Bestelling 81 / Lijn </td>
<td>02/07/2010</td>
<td>23,95</td>
<td>23,60</td>
<td class="ArtOpen_134399 Number">
</td>
<td id="ArtToew__134399" class="ArtToew ArtToew_134399 Number">
<div style="display:none" class="ArtBestLn">
<input type="hidden" value="">
</div>
<input type="text" style="text-align:right" size="4" id="Aantal_" name="Aantal_" maxlength="4">
</td>
</tr>

</tbody>

最佳答案

它很慢,因为它要运行该代码 500 次。

我假设这不是您要找的答案,所以如果您可以发布您的 HTML 结构,我们可以看看是否有一种方法可以优化您使用的选择器以使其更快。

关于javascript - 为什么 IE9 执行某些 JQuery 需要这么长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8215495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com