Навряд ли кто нить осилить такую пашу кода за попивая чайек)
Рандомные слова - не совсем задача фронтэнда поскольку нужно работать со словарем, загрузить его клиенту можно, но это перебор. Проще с клиента послать запрос на сервер, сервер рандомно выберет слова слова и отправит клиенту.
У вас не один блок не сжимается а все, непонятно какой создает сдвиг. Все вставили адаптивные?
Ну скорость загрузки страницы вроде как одна из метрик ранжирование этого никто не скрывает)
Картинки сжимать https://github.com/imagemin/imagemin - правда придется поиграться с настройками и с методами сжатия.
Чисто теоретически может попробовать заголовок Cache-Control для вашего js файла. no-store вроде беспощаден. Если получиться отпишитесь плиз, самому интересно, но руки точно не дойдут)
Уберите совсем подключение script.js
http://ozpp-sar.ru/css/style.css
Тут у body поменяйте overflow: hidden; на overflow: scroll;
Зачем вам такое извращение? Опишите ситуацию, возможно этого и не потребуется для решения.
При беглом просмотре такое ощущение что иниициализацию одного скрипта засунули в исходники другого скрипта.
Попробуйте вот это:
AmCharts.makeChart( "chartdiv1", { "type": "pie", "theme": "light", "dataProvider": [ { "title": "58% в сфере розничной торговли", "value": 58 }, { "title": "42% в сфере оказания услуг", "value": 42 } ], "titleField": "title", "valueField": "value", "labelRadius": 5, "radius": "42%", "innerRadius": "60%", "labelText": "[[title]]", "export": { "enabled": true } } ); AmCharts.makeChart( "chartdiv2", { "type": "pie", "theme": "light", "dataProvider": [ { "title": "ООО 70-30%", "value": 20 }, { "title": "Мелкий бизнес (ООО) 60-40%", "value": 20 }, { "title": "ИП 80-20%", "value": 20 }, { "title": "Крупные Сети 95%", "value": 20 }, { "title": "Иностранные компании 98%", "value": 20 } ], "titleField": "title", "valueField": "value", "labelRadius": 5, "radius": "42%", "innerRadius": "60%", "labelText": "[[title]]", "export": { "enabled": true } } );
Убрать из script.js и воткните напрямую в тег <script> где нить внизу страницы возле </body>
А зачем если есть fetch? Для совсем стареньких можно полифил при надобности подгружать.
Для jsonp тоже много решений. Если вам нужен какой то свой контроль, то просто свою обертку сделайте.
values() вроде как эксперементальная штука. Проверьте поддерживает ли браузер данный сахар. И values - это сахар для проперти объекта. В вашем случае по массиву можно бегать простым for ...of, values тут без надобности.
Мне тоже дико интересно зачем это всё)