关于如何在IE中加快速度的任何想法(过滤过程在Firefox中表现不错,但在IE中几乎无法使用)。基本上,它是带有过滤器文本框的标签云,用于过滤云。
<html>
<head>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#tagFilter').keyup(function(e) {
if (e.keyCode==8)
{
$('#cloudDiv > span').show();
}
$('#cloudDiv > span').not('span:contains(' + $(this).val() + ')').hide();
});
});
</script>
</head>
<body>
<input type="text" id="tagFilter" />
<div id="cloudDiv" style="height: 200px; width: 400px; overflow: auto;">
<script type="text/javascript">
for (i=0;i<=1300;i++)
{
document.write('<span><a href="#">Test ' + i + '</a> </span>');
}
</script>
</div>
</body>
</html>
感谢, rodchar
答案 0 :(得分:2)
而不是做1300 document.writes,尝试创建一个连接字符串并做1写。如果它是正在减慢IE的document.writes,这可能会有所帮助。
答案 1 :(得分:1)
除derek所说的内容外,请考虑使用jQuery's append()
方法(或至少使用非jQuery方法)。
答案 2 :(得分:1)
由于标签应该是唯一的(云中的标签“真棒”两次没有意义),根据标签字符串的清理版本给每个跨度一个“id”值(替换带下划线的空间等)。这应该会使事情变得更快很多,因为过滤器可以通过“id”值。
实际上,您甚至不需要过滤器:只需隐藏所有云中的<span>
元素,然后显示具有“id”值的元素。当前字段值。如果没有一个,那么就没有一个,但如果有,那就会非常快。
答案 3 :(得分:1)