Jquery 扫描条形码时应用程序滞后

Jquery 扫描条形码时应用程序滞后,jquery,asp.net-mvc,performance,entity-framework,barcode-scanner,Jquery,Asp.net Mvc,Performance,Entity Framework,Barcode Scanner,我创建了一个应用程序,该应用程序的功能是当乘客来我们这里使用我们的服务时,我们扫描他们的登机牌(条形码),并将他们的信息保存在我们的数据库中,以获得每月有多少乘客使用我们的服务的报告。 好的,所有这些都工作得很好,乘客来了,我们经常扫描并保存他们的信息,但是当有大量乘客,比如5或6名乘客一起来访问我们时,应用程序在扫描时会挂起,并卡在该页面上。 让我给你看一些代码。 我有一个视图模型,其中一个属性是string。 这是一种扫描视图的方法 public ActionResult Scaning(

我创建了一个应用程序,该应用程序的功能是当乘客来我们这里使用我们的服务时,我们扫描他们的登机牌(条形码),并将他们的信息保存在我们的数据库中,以获得每月有多少乘客使用我们的服务的报告。 好的,所有这些都工作得很好,乘客来了,我们经常扫描并保存他们的信息,但是当有大量乘客,比如5或6名乘客一起来访问我们时,应用程序在扫描时会挂起,并卡在该页面上。 让我给你看一些代码。 我有一个视图模型,其中一个属性是string。 这是一种扫描视图的方法

 public ActionResult Scaning(Scanning Request)
    {
        if (!General.ValidateSession())
        {
            return RedirectToAction("Login", "User");
        }
        var Flights = FlightRepos.GetAllEmirates().Where(x=>x.isDelete==false);
        ViewBag.FlightNoList = Flights.Select(x => new SelectListItem
        { Text = x.FlightNo.ToString(), Value = x.ID.ToString() });

      //s  ViewBag.Passcategory = categoryrepos.GetAll().Select(x => new SelectListItem { Text = x.Name.ToString(), Value = x.ID.ToString() });
        ViewBag.Passcategory = categoryrepos.GetAll().Where(x=>x.ID!=4 && x.ID!=5).Select(x => new SelectListItem { Text = x.CategoryCode.ToString(), Value = x.ID.ToString() });
        var b = Request.Data.Split(' ');
        //   int c = b.Length;

        List<string> list = new List<string>(b);

        //  var list1 = new List<string>(b);
        for (int i = 0; i < b.Length; i++)
        {
            if (b[i].Equals(""))
            {
                list.Remove(b[i]);
            }
            else
            {

            }
        }

        b = list.ToArray();

        if (b.Length < 4)
        {
            return View("PleaseCheckManually");
        }
        var Model = new PassengerInfo(); 
        if (b[4].Length < 12 || b[4].Length > 12)
        {
            return View("PleaseCheckManually");
        }
        Model.Name = b[0];
        Model.SeatNo = b[4].Substring(4, 4);
        Model.SequenceNo = b[4].Substring(8);

        Model.FlightId = int.Parse(b[3]);
        if (Flights.FirstOrDefault(x => (x.FlightNo) == b[3]) == null)
        {
            Request = null;

            list = null;
            ViewData["flights"] = b[3];  
            ViewData["scan"] = "0";


            return View();
        }

        else
        {
            Model.FlightId = Flights.FirstOrDefault(x => (x.FlightNo) == b[3]).ID;

        }
        return View("CheckIn", Model);
    }
公共操作结果扫描(扫描请求)
{
如果(!General.ValidateSession())
{
返回重定向操作(“登录”、“用户”);
}
var Flights=FlightRepos.GetAllEmirates()。其中(x=>x.isDelete==false);
ViewBag.FlightNoList=航班。选择(x=>new SelectListItem
{Text=x.FlightNo.ToString(),Value=x.ID.ToString()});
//s ViewBag.Passcategory=categoryrepos.GetAll().Select(x=>newselectListItem{Text=x.Name.ToString(),Value=x.ID.ToString()});
ViewBag.Passcategory=categoryReportos.GetAll()。其中(x=>x.ID!=4&&x.ID!=5)。选择(x=>newselectListItem{Text=x.CategoryCode.ToString(),Value=x.ID.ToString();
var b=请求.数据.分割(“”);
//int c=b.长度;
列表=新列表(b);
//var list1=新列表(b);
for(int i=0;i12)
{
返回视图(“请每年查看”);
}
Model.Name=b[0];
Model.SeatNo=b[4]。子串(4,4);
Model.SequenceNo=b[4]。子字符串(8);
Model.FlightId=int.Parse(b[3]);
if(Flights.FirstOrDefault(x=>(x.FlightNo)=b[3])==null)
{
请求=null;
列表=空;
ViewData[“航班”]=b[3];
ViewData[“扫描”]=“0”;
返回视图();
}
其他的
{
Model.FlightId=Flights.FirstOrDefault(x=>(x.FlightNo)==b[3]).ID;
}
返回视图(“签入”,模型);
}
我有一个视图模型,扫描,通过该视图,我通过扫描乘客的登机牌,将条形码字符串放入其中

查看

@{
ViewBag.Title = "Scaning";
Layout = "~/Views/Shared/_Layout.cshtml";
}

<section id="contact-us-section" class="contact-us-section pb-30 image-bg">
    <div class="container">
        <div class="section contact-us">
            <div class="container">
                <br />
                <div class="slider-text-2 text-center pt-40">
                    <h2 class="font-w-8 font-30 ltr-s-1 pb-12 color-w" style="color:#e60053">Scan The Boarding Pass Of Passenger</h2>
                    <h4 class="color-w font-22"><a class="font-20 color-w" href="/Home/Index">Home</a></h4>
                </div>
                <br />
                <div class="outer-box">
                    <!-- Contact Form Start -->
                    <div class="form-box clearfix">
                        <div align="center">
                            <img src="~/Contents/images/Barcod.gif" style="width:50% ; height:auto" />
                        </div>
                        <div class="col-md-6 contact-us">
                            <form action="" method="post" id="scan-form">
                                <div class="styled-input">
                                    <input type="text" name="Data" placeholder="Name" required="" id="scanInput" hidden>
                                </div>
                            </form>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</section>
@{
ViewBag.Title=“扫描”;
Layout=“~/Views/Shared/_Layout.cshtml”;
}

扫描乘客的登机牌
输入的名称“Data”是视图模型的属性名称,当用户扫描乘客的登机牌时。barcod字符串与此数据绑定,通过使用Jquery,我提交了表单,然后对上面描述的方法进行了一些逻辑工作

这是用于绑定条形码字符串和提交表单的脚本

<script>
var code = '';
var scanStarted = false;
$(document).keypress(function (e) {
    code += e.key;
    if (!scanStarted) {
        scanStarted = true;
        setTimeout(function () {
            $('#scanInput').val(code);
            $('#scan-form').submit();
        }, 700);
    }
});

var代码=“”;
var scanStarted=false;
$(文档)。按键(功能(e){
代码+=e.key;
如果(!scanStarted){
scanStarted=true;
setTimeout(函数(){
$('#scanInput').val(代码);
$(“#扫描表单”).submit();
}, 700);
}
});


当用户在间隔1分钟后到达时,这一切都很正常,但当一群乘客到达时,应用程序在扫描时会出现延迟。

这种延迟可能有数百个原因。您需要首先确定延迟实际发生的位置,即客户端或服务器端,然后从那里开始。我建议在客户端/服务器上也使用请求探查器。。因为该页没有指向下一页,如果您看到我的操作方法,我将获取该条形码字符串并将其传递到另一个视图。您正在调用存储库中的某些函数。在其中一个功能中是慢的吗?你是在用千分之一的记录来实现查询吗?(您的代码似乎是从一个模糊的exe反编译的)