Валидность javascript для компонентов MODx
        Всех приветствую.
Давно ничего не писал и вот сподобился. :)
Много раз встречал проблемы, которые описывали другие участники сообщества.
А именно — валидность Javascript, который дополнения интегрируют в тело страницы.
Первая проблема — w3c валидатор ругается на атрибут type=«text/javascript». Этот атрибут интегрируют в вызовы скрипта в теле страницы дополнения Minifyx, Minishop2, ms2Gallery, Tickets и другие.
Вторая проблема — использование метода document.write() для динамического внедрения внешних скриптов. На это уже ругается Google PageSpeed Insights. Это очень старая проблема. Решается заменой document.write() на document.createElement('script');
В основном, Google PageSpeed Insights, ругается вот на этот скрипт Tickets: assets/components/tickets/js/web/default.js
Вопрос следующий — как будем решать эти проблемы? :) И что для этого нужно? Если нужен донат — пишите. Готов за разумную денежку проспонсировать для сообщества эти изменения.
Заранее благодарен авторам за ответ и всем всего хорошего.
    
    
                                                                                
            Давно ничего не писал и вот сподобился. :)
Много раз встречал проблемы, которые описывали другие участники сообщества.
А именно — валидность Javascript, который дополнения интегрируют в тело страницы.
Первая проблема — w3c валидатор ругается на атрибут type=«text/javascript». Этот атрибут интегрируют в вызовы скрипта в теле страницы дополнения Minifyx, Minishop2, ms2Gallery, Tickets и другие.
Вторая проблема — использование метода document.write() для динамического внедрения внешних скриптов. На это уже ругается Google PageSpeed Insights. Это очень старая проблема. Решается заменой document.write() на document.createElement('script');
В основном, Google PageSpeed Insights, ругается вот на этот скрипт Tickets: assets/components/tickets/js/web/default.js
Вопрос следующий — как будем решать эти проблемы? :) И что для этого нужно? Если нужен донат — пишите. Готов за разумную денежку проспонсировать для сообщества эти изменения.
Заранее благодарен авторам за ответ и всем всего хорошего.
Комментарии: 12
                Ну на text/javascript вроде не ругается, а просто предупреждает. Ругается вот на атрибуты vue и alpine. Css валидатор ругается на css-переменные. Так что воспринимаю предупреждения и ошибки w3c валидатора просто как рекомендации            
                    
                При прочих равных, если на одном сайте есть предупреждения, а на другом нет — предпочтение отдадут сайту без предупреждений.            
                    
                В minishop проблем с валидностью скриптов не будет.            
                    
                Чтобы убрать атрибуты и заодно удалить слеши у одиночных тегов можно сделать плагин на событие onWebPagePrerender )):
                    <?php
if($modx->resource->get('content_type') == 1){
    $arr1 = array('type="text/css"', 'type="text/javascript"',' />','/>');
    $arr2 = array('','','>','>');
    $output = &$modx->resource->_output;
    $output = str_replace($arr1,$arr2,$output);    
}            
                Спасибо за совет.
Такие скрипты заметно снижают скорость первичной загрузки.
                    Такие скрипты заметно снижают скорость первичной загрузки.
                Ничего они не снижают. Откуда вообще такая информация что такой код что-то замедлит? Он перед Рендером страницы сделает замену. Если вы считаете что 1 str_replace что-то замедлит, то как вообще что-то работает?            
                    
                Иван, спасибо за ответ. Перепроверил — работает и не снижает скорость загрузки. Поспешил с выводами. Использовал похожий плагин. Он замедлял загрузку на 0,12-0,19 мс.            
                    
                Павел, прошу прощения. Перепроверил — всё работает. Скорость первичной загрузки страницы не снижается. Еще раз — спасибо!            
                    
                А сам не хочешь сделать нужные PR?            
                    
                Николай, благодарю за ответ. Если честно — не умею.            
                    
                А что мешает научиться?            
                    
                Артур, спасибо за вопрос. 
Учиться ничего не мешает. Более того, искренне считаю, что учиться — всегда нужно. Так уж получилось, что у меня другая сфера деятельности и компетенций. В этой сфере я и стараюсь всячески развиваться и учиться. :)
                    Учиться ничего не мешает. Более того, искренне считаю, что учиться — всегда нужно. Так уж получилось, что у меня другая сфера деятельности и компетенций. В этой сфере я и стараюсь всячески развиваться и учиться. :)
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.