Оптимизация кода javascript / jquery для загрузки формы во всплывающем окне - PullRequest
4 голосов
/ 06 августа 2020

Я хочу загрузить форму drupal во всплывающем окне, я создаю эту функцию, и она отлично работает, проблема в том, что загрузка занимает вечность (более 8 секунд). Мой вопрос в том, как оптимизировать этот код, чтобы он загружался быстрее.

        // Attach a click listener to add alert button.
          var tab=[] ;
          var bundles=[] ;
          var views ;
          $( "tr" ).change(function() {
              $.each($("tr.selected"), function(i, obj) { 
                  tab.push($(this).find('#views_alert_link').attr('data-id'));    
                  views = $(this).find('#views_alert_link').attr('data-views');
                  bundles.push($(this).find('#views_alert_link').attr('data-bundle'));
              });
          });
          

        // setTimeout(function(){
            $('#edit-add-alert').once().click(function() {
                        var url = '/content/sitewide_alert/add?bundle=';
                        $.colorbox({href: url,
                            onComplete: function() {
                                $('div#edit-start-date-wrapper').hide(); 
                                $('div#edit-end-date-wrapper').hide(); 
                                $('input#edit-scheduled-alert-value').change(function(){
                                    if(this.checked) {
                                        $('div#edit-start-date-wrapper').show(); 
                                        $('div#edit-end-date-wrapper').show(); 
                                    } else {
                                        $('div#edit-start-date-wrapper').hide(); 
                                        $('div#edit-end-date-wrapper').hide(); 
                                    } 
                                });
                            }
                        }); 
                if (tab.length) {   
                    const allEqual = arr => arr.every( v => v === arr[0] )
                    if (allEqual( bundles )) {
                    }else{
                        alert('veuillez choisir des contenus ayant le meme type!')
                    }
                }else{
                    alert('Pas de contenu couché pour ajouter une alerte!');
                }

            });

            $('div#alert_data>img').each(function(index) {
                tippy($(this)[0], {
                  content: '<strong>'+ $(this).attr('data-title') +'</strong><br><p>'+ $(this).attr('data-description') +'</p>',
                  allowHTML: true,
              });
            });
...