Web2Py Ajax запрос слишком медленный - Web2py View to Controller - PullRequest
0 голосов
/ 19 марта 2020

Я использую Web2py для разработки небольших приложений. Одно из моих приложений включает в себя таблицу, созданную с использованием dataTables. На столе есть кнопки, и у каждого есть выпадающий список с несколькими действиями, которые при нажатии обновляют статус таблицы.

Моя проблема в том, что на запрос GET требуется много времени, чтобы ответить, когда Нажатие кнопки занимает более 15-20 секунд, чтобы получить ответ, и, наконец, перезагрузить таблицу. введите описание изображения здесь

Я сделал это, используя JS и Ajax. Код для каждого элемента под кнопкой

<a id="Details_btn"  class="dropdown-item" type="button" onclick="lead_statusupdate(this)" data-id="{{=lead.id}}" data-btn_status="Details Send" data-btn_user="{{=auth.user.id}}"><i class="fa fa-flag-checkered"> Details Send</i></a>

И эта кнопка вызывает Javascript в файле HTML Код для JS

<script type="text/javascript">
      function lead_statusupdate(value) {
        $("#myModal").modal("show");
        var leadno = $(value).data('id');
        var status = $(value).data('btn_status');
        var updater = $(value).data('btn_user');
        if (status !== "SMS Pending" && status !== "Mailer Pending"){
            var remarks = prompt("Please remarks related to your update:", "Daily Update");
            if (remarks == null || remarks == "") {
            remarks = "No remarks entered";}
            }
        $.ajax({
              type: "GET",
              url: '/init/lead_entry/leadStatus_update',
              data: { view_leadno: leadno,
                       view_status: status,
                        view_updater: updater,
                         view_remarks: remarks
                    } 
            });
        $("#status_blck").load(" #status_blck > *");
        }
 </script>

Информация из представления передается в контроллер с помощью GET и AJAX

На стороне контроллера код

@auth.requires(auth.has_membership('Sales_Staff') or auth.has_membership('Admin'))
def leadStatus_update():
    db.Lead_Status.insert(  lead_id=request.vars.view_leadno, 
                            lead_type='General Lead', 
                            status=request.vars.view_status, 
                            Updated_by=request.vars.view_updater, 
                            Remarks=request.vars.view_remarks)
    db(db.Fb_leads.id == request.vars.view_leadno).update(Final_Status=request.vars.view_status)
return response.json({'status':'success'})

Мне просто нужно отправить данные в контроллер, чтобы обновить данные по нажатию кнопки, можно использовать любой метод. Вышеупомянутый метод был доступен мне после поиска по поиску.

РЕДАКТИРОВАТЬ: изменил возврат из функции контроллера для возврата JSON и удалил commit () для каждого действия , Скорость немного улучшилась ... не большое изменение!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...