Отставание приложения во время сканирования штрих-кода - PullRequest
0 голосов
/ 26 июня 2018

Я создал приложение, и функциональность этого приложения, когда PASSENGER обратился к нам за использованием наших услуг, мы отсканировали их посадочный талон (штрих-код) и сохранили их информацию в нашей базе данных, чтобы получать ежемесячные отчеты о том, сколько пассажиров использует наши услуги. , Хорошо, так что все это работает очень хорошо, Пассажир пришел, мы часто сканировали и сохраняли их информацию, но когда есть пассажиры, такие как 5 или 6 Пассажиров, пришли к нам вместе, так что приложение зависает во время сканирования и он застрял на этой странице. Позвольте мне показать вам некоторый код. У меня есть модель View с одним свойством, которое является строкой. Это ActionMethod просмотра сканирования

 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);
    }

У меня есть модель просмотра, которая Сканирует , и через просмотр я беру в нее строку Штрих-код , сканируя посадочный талон PASSENGER.

View

@{
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>

Это входное имя «Данные» - это имя моего свойства модели вида, когда пользователь сканировал посадочный талон Пассажира. Строка 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);
    }
});

Это все работает очень хорошо, когда пользователь пришел после промежутка в 1 минуту, но когда пришла группа Пассажиров, тогда приложение отстает во время сканирования.

...