Skip to content

Instantly share code, notes, and snippets.

@volandku
Last active June 12, 2023 12:03
Show Gist options
  • Save volandku/50de5fcff12d0240f7fe40aeb278442e to your computer and use it in GitHub Desktop.
Save volandku/50de5fcff12d0240f7fe40aeb278442e to your computer and use it in GitHub Desktop.
од для модуля (джумлы, но не только) для вставки яндекс карты отложенно на 4 секунды для улучшения показателей Google PageSpeed
// код для модуля (джумлы, но не только) для вставки яндекс карты отложенно на 4 секунды для улучшения показателей Google PageSpeed
// смените url перед использованием
<div id="ymaps111" style="display: block; width: 100%; height: 500px;"></div>
<script type="text/javascript">
function loadScript(url, callback){
var script = document.createElement("script");
if (script.readyState){ // IE
script.onreadystatechange = function(){
if (script.readyState == "loaded" ||
script.readyState == "complete"){
script.onreadystatechange = null;
callback();
}
};
} else { // Другие браузеры
script.onload = function(){
callback();
};
}
script.src = url;
document.getElementById("ymaps111").append(script);
}
document.addEventListener("DOMContentLoaded", function() {
setTimeout(function(){
loadScript("https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3Aтутдлинныйидентификатор&amp;width=100%&amp;height=500&amp;lang=ru_RU&amp;scroll=true" ,
function(){ ye();});
},4000);
});
</script>
@exmmth
Copy link

exmmth commented Jun 27, 2021

чтобы отвязать от идентификатора ymaps111, строку 23 можно заменить на
так
document.getElementsByTagName("script")[0].appendChild(script); //найдет скрипт первый в документе, вставит после него
или так
document.getElementsByTagName("head")[0].appendChild(script); //вставит скрипт в head
или так
document.body.innerHTML += script; // вставил в тело документа в конец

а для инициализации самой карты (или какого другого кода который должен быть вызван после загрузки скрипта) существует функция ye(); которая затесалась сюда, но её в самом коде нет.
Нужно заменить (создать) эту функцию, где и будет работа с балунами и инициализация.

@Melnick704
Copy link

Спасибо, мужик! Снёс api яндекса из head и сайт аж дышать начал!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment