ユーザーがフィールドに入力すると、JQueryを使用してdivを表示/非表示にしています。動作しますが、IE8 以下では非常に遅くなります。すべての div を非表示にしてから適切な div のみを表示する、すべての div を表示して適切な div のみを非表示にするなど、さまざまな組み合わせを試しました。この問題は、ほぼ 30,000 行のデータを返すという事実に関係していると想定しています (編集: 4,000 行のデータと 30,000 行の html を言いました)。しかし、Chrome、Firefox、Opera などで非常にスムーズに動作するので、IE で速度を改善するために何かできることがあるかもしれないと思いました。たとえば、ユーザーのトリム方法を変更する必要がありましたが、:not を使用する方法がいくつかあります。だから多分私にできることは他にありますか?私が試した他のオプションを確認できるように、コメント付きのコードを残しましたが、適切な組み合わせが得られなかった可能性があります。
function updateRecords(e){
//references are all uppercase
var searchVal = $.trim($("#searchReference").val().toUpperCase());
var refCount = $('[id^="'+searchVal+'"]').attr('count');
if ((e.keyCode == 8) || (searchVal == '')){//this checks for backspace
$('.refRows').css({"display":"block"});
}
if (searchVal != '')
{
//$('.refRows').hide();
//$('.refRows').css("display","none");
$(".refRows").not('[id^="'+searchVal+'"]').css({"display":"none"});
//$(".refRows:not(" + searchVal + ")").css({"display":"none"});
//$('.refRows[id^="'+searchVal+'"]').css("display","inline-block");
}
}