【问题标题】:simulating text selection with spans, bottle neck用跨度、瓶颈模拟文本选择
【发布时间】:2012-06-04 19:13:10
【问题描述】:

我有文字。

单词被包含在 spans 中(span ID 为 1,2,3...N):

<span id="79" class="p">თაობის<div class="p" style="width: 9px; left: -9px; "></div></span> <span id="80" class="p">განადგურების<div class="p" style="width: 10px; left: -10px; "></div></span>

我正在通过以下方式模拟文本选择:

我需要通过更改 span 的背景颜色并用背景填充的 div 填充 span 之间的间隙来模拟文本选择。

当跨度计数足够大时,在 Internet Explorer 中,运行“选定文本跨度”并计算放置 div(带背景色)之间的间隙空间的 javascript 代码需要很长时间(Internet Explorer 最多挂起总跨度为 500 时为 30 秒。

【问题讨论】:

  • 除非你把它放在这里,否则无法判断代码中的瓶颈。
  • html 无效不是问题,因为我们不需要搜索引擎来浏览它。但是,如果您认为这可能是瓶颈的原因,您能提出什么建议吗?
  • 您是否要突出显示页面上的文本?如果是这样,您是否为此查看过一些jQuery plugins?

标签: jquery dom


【解决方案1】:

我不太明白“模拟文本选择”是什么意思

你可以看看这个例子http://jsfiddle.net/fullpipe/DpP7w/embedded/result/

如果您建议您的代码,帮助您将非常容易

大量时间用于文本生成

【讨论】:

  • 是的,我正在做与您给我链接的页面上显示的相同的事情。我的问题是我试图用额外的 div 来填补单词之间的空白,这就是性能问题开始的地方。据我了解,IE 在某些父 div 中添加 10 个或更多 div 以及数百个跨度包装的单词是很重要的。无论如何,谢谢,据我所知,唯一的解决方案是将文本分成小块,仅可见。
  • 我认为最好在服务器端的文本中插入 div。而这个to much for IE to add 10 and more divs in some parent div 不是问题。可能是你的脚本中有一些慢循环
猜你喜欢
  • 1970-01-01
  • 2019-11-17
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多