Правило YSlow 8 (сделать JavaScript и CSS внешним) против действительного html5
Мне нравится YSlow. И старайтесь руководствоваться здравым смыслом, следуя его правилам. Но ради интереса я пытаюсь, чтобы мой сайт ASP.NET MVC набрал 100 баллов. И я почти на месте (на данный момент на 99 даже зеркально отразил мой сайт на другом сервере и изменил about:config для симуляции CDN).).
И после тестирования я обнаружил, что для получения идеального результата по правилу 8 (где я получаю одно очко за 2 встроенных скрипта) нужно нарушать правила синтаксиса HTML5 (согласно валидатору w3c). Я думаю, что это также относится к правилам синтаксиса HTML4.
Например, без вычетов (нарушает правила синтаксиса HTML5):
<script type="text/javascript" src="/ui/scripts/lib/core.js" />
И для действительного HTML5, но с вычетами на счет YSlow:
<script type="text/javascript" src="/ui/scripts/lib/core.js"></script>
Моя гипотеза заключается в том, что в некотором смысле это правильно, поскольку веб-браузер будет сканировать любой сценарий во втором примере, а не в первом (поскольку второй является открывающим и закрывающим тегом).
Кто-нибудь знает другой способ обойти это? Может ли один сокр получить идеальную сотню и при этом иметь действительный HTML5?
1 ответ
В обоих случаях вы можете избавиться от type="text/javascript"
из тега сценария. Но да, вам нужен закрывающий скрипт-тег.
YSlow здесь неверен.