Javascript HTML格式的输入阻碍

Javascript HTML格式的输入阻碍,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试按输入执行搜索,它尝试显示数据与输入数据匹配的元素。代码如下: var webUserdataTempInput = $(".Input").val(); $(".Input").keyup(function(e){ if($(this).val()==webUserdataTempInput) return; webUserdataTempInput=$(".Input").val(); var webUserdataCurr

我正在尝试按输入执行搜索,它尝试显示数据与输入数据匹配的元素。代码如下:

var webUserdataTempInput = $(".Input").val();
$(".Input").keyup(function(e){

    if($(this).val()==webUserdataTempInput)
        return;
        webUserdataTempInput=$(".Input").val();
        var webUserdataCurrentNo=0,webUserdataCurrentPrio;
        for (webCount=0;webCount<$(".E").length;webCount++){
            if($(".webAdminUserdataInput").val()!=webUserdataTempInput)
                break;
            if($(".Input").val().length==0){
                $(".E").css("display","block");
                return;
            }
            var wI = $(".Input").val().toLowerCase();
            var wC = $(".E:eq("+webCount+")").attr("data-c").toLowerCase();
            var wE = $(".E:eq("+webCount+")").attr("data-e").toLowerCase();
            var wS = $(".E:eq("+webCount+")").attr("data-s").toLowerCase();
            var wU = $(".E:eq("+webCount+")").attr("data-u").toLowerCase();
            if(wC.replace(wI,"")==wC && wE.replace(wI,"")==wE && wS.replace(wI,"")==wS && wU.replace(wI,"")==wU){
                $(".E:eq("+webCount+")").css("display","none");
                $(".E:eq("+webCount+")").css("color","#fff");
            }else{
                $(".E:eq("+webCount+")").css("display","block");
                $(".E:eq("+webCount+")").css("color","#ff0");
                webUserdataCurrentNo++;
                webUserdataCurrentPrio=webCount;
            }
        }
});
var webUserdataTempInput=$(“.Input”).val();
$(“.Input”).keyup(函数(e){
if($(this).val()==webUserdataTempInput)
返回;
webUserdataTempInput=$(“.Input”).val();
var webUserdataCurrentNo=0,webUserdataCurrentPrio;

对于(webCount=0;webCount我认为“.E”的多个部分正在扼杀移动环境中的应用程序。如果您可以尽可能缩小范围,或将“.E”元素列表存储在变量中,并使用:

var elist = $(".E");
.
.
$elist.find(":eq(" + webCount + ")").css({ display: "block", color: "#ff0" });

如果可能的话,尝试减少检查范围,这将有助于提高性能。因此,超时会有所帮助,但它无法解决根本问题,即DOM访问和更大的DOM树会降低移动应用程序的速度。

我的解决方案一直是引入非常短的超时时间,大约是移动应用程序的五分之一第二,在任何时候发生按键事件时清除它,这样键入不会导致延迟,但一旦停止键入,它会突然更新。这听起来像是对您有用的事情吗?我可以将超时设置为十分之一秒吗?我已经做了类似的操作,但失败了,我希望尽快显示搜索结果这是可能的。请看这一点,根据您的需要调整超时。-值得注意的是,在默认情况下,在移动浏览器上增加此超时可能是一个好主意,以减少可能的延迟。您的代码成功了,因为只有一个命令!但是,在我的代码中,for循环将以某种方式执行100次以上,这使事情变得复杂低。似乎设置超时对问题没有帮助。是否有任何有用的算法可以减少检查范围?请尽可能具体。
$(“td.E”);
$(“div.E,span.E,li.E”);
$(.E”)更快< /代码>或将父元素的集合元素打包为<代码> $[(“{ PARTENTENMYBYID”).find(“.e”),因为父元素减少了范围。或者如果可能的话,考虑文档片段()。