Hotlst.biz poprawia ładowanie skryptów: odejście od $.getScript
Zespół Hotlst.biz zoptymalizował działanie JavaScript na platformie, zastępując $.getScript dynamicznym tworzeniem elementów <script> za pomocą czystego JavaScript.
Wcześniej skrypt ładowany był w ten sposób:
Code: JavaScript
$(function(){
if ($(".hotengine-shop-products-add-count-spinner").length){
if(typeof $hotengine_shop_product_count_spinner == "undefined"){
$.getScript("/templates/scripts/hotengine-script-shop-product-count-spinner.js?v33").fail(function(jqxhr, settings, exception) { console.error("Failed to load script: ", exception);
});
}
}
});
Teraz stosuje się inne podejście:
Code: JavaScript
$(function(){
if ($(".hotengine-shop-products-add-count-spinner").length){
if (typeof $hotengine_shop_product_count_spinner == "undefined"){
const s = document.createElement("script");
s.async = true;
s.src = "/templates/scripts/hotengine-script-shop-product-count-spinner.js?v34";
s.onerror = (e) => { console.error(`Failed to load script: ${s.src}`, e); };
document.head.appendChild(s);
}
}
});
Dlaczego jest to zalecane:
- Nie wymaga jQuery, mniej zależności.
- Kontrola nad ponownym ładowaniem: skrypt wstawiany jest tylko raz.
- Asynchroniczne ładowanie poprawia wydajność bez blokowania strony.
- Proste i przewidywalne obsługiwanie błędów przez
onerror. - Kod jest nowoczesny i kompatybilny z czystym JavaScript.