Gana dažna problema internetinėse parduotuvėse su WooCommerce yra per didelis procesoriaus apkrovimas pirkinių krepšelio AJAX užklausomis. Fix wc-ajax = get_refreshed_fragments High CPU Usage.
Per didelis procesų apkrovimas CPU pagal bet kokį dabartinį scenarijų nedaro nieko kito, kaip tik sumažina internetinės parduotuvės puslapių įkėlimo greitį, kad būtų pasiektas žemas SEO ir naudotojų patirties balas. Mažiau užsakymų svetainėje.
Kuprinai
Kas yra ir kam naudojama wc-ajax = get_refreshed_fragments užklausa
Kad visi suprastų, naudojant šį AJAX scenarijų, WooCommerce leisti prekių įtraukimas į krepšelį ir pirkinių krepšelio atnaujinimas neatnaujinant tinklalapio. Pirkinių krepšelis asinchroniškai susisieks su pagrindiniu serveriu per AJAX (asinchroninį JavaScript ir XML).
Pagal numatytuosius nustatymus /?wc-ajax=get_refreshed_fragments
yra visuose svetainės puslapiuose, kad galėtų sekti veiksmus Add to Cart vartotoją ir pakeitimus, kurie gali būti rodomi pirkinių krepšelio valdiklyje. Šie veiksmai skatina procesus CPU ir sulėtinti tinklalapių įkėlimo greitį. Kartais 4-5 sekundes, o tai yra daug.
Ištaisyta wc-ajax = get_refreshed_fragments High CPU Naudojimas (išjungti AJAX krepšelio fragmentus)
Jei antraštėje ar kitoje nuolatinėje parduotuvės srityje nenaudojate dinaminio krepšelio valdiklio, geriausia atsisakyti dinaminio atnaujinimo ir krepšelio pridėjimo/atnaujinimo veiksmų sekimo.
Galite jį išjungti AJAX Cart Fragments archyvo puslapiuose ir nukreipti vartotojus tiesiai į pirkinių krepšelį, kai prekė įdedama į krepšelį.
WooCommerce → Settings → Products.
Jei norite palikti šį scenarijų įjungtą "Add to Cart Ajax“, bet ne norėdami paleisti pirmajame parduotuvės puslapyje, redaguokite dabartinės temos failą functions.php ir pridėkite šį kodą:
add_action ('wp_enqueue_scripts', 'dequeue_woocommerce_cart_fragments', 11);
function dequeue_woocommerce_cart_fragments () {if (is_front_page ()) wp_dequeue_script ('wc-cart-fragments'); }
Scenarijuje, kur be puslapių WooCommerce Jūs taip pat turite tinklaraštį ar kitus suasmenintus puslapius, kuriuose nėra produktų, gera idėja yra išjungti jų fragmentus.
add_action ('wp_enqueue_scripts', 'dequeue_woocommerce_cart_fragments', 11);
function dequeue_woocommerce_cart_fragments () {
if (is_front_page () || is_single ()) wp_dequeue_script ('wc-cart-fragments');
}
Visiškas išjungimas ir fix wc-ajax = get_refreshed_fragments High CPU Usage (Disable AJAX Cart Fragments) tai daroma tokiu kodu:
add_action ('wp_enqueue_scripts', 'dequeue_woocommerce_styles_scripts', 99);
function dequeue_woocommerce_styles_scripts () {
if (function_exists ('is_woocommerce')) {
if (! is_woocommerce () &&! is_cart () &&! is_account_page () &&! is_checkout ()) {
# Styles
wp_dequeue_style ('woocommerce-general');
wp_dequeue_style ('woocommerce-layout');
wp_dequeue_style ('woocommerce-smallscreen');
wp_dequeue_style ('woocommerce_frontend_styles');
wp_dequeue_style ('woocommerce_fancybox_styles');
wp_dequeue_style ('woocommerce_chosen_styles');
wp_dequeue_style ('woocommerce_prettyPhoto_css');
# Scripts
wp_dequeue_script ('wc_price_slider');
wp_dequeue_script ('wc-single-product');
wp_dequeue_script ('wc-add-to-cart');
wp_dequeue_script ('wc-cart-fragments');
wp_dequeue_script ('wc-checkout');
wp_dequeue_script ('wc-add-to-cart-variation');
wp_dequeue_script ('wc-single-product');
wp_dequeue_script ('wc-cart');
wp_dequeue_script ('wc-chosen');
wp_dequeue_script ('woocommerce');
wp_dequeue_script ('prettyPhoto');
wp_dequeue_script ('prettyPhoto-init');
wp_dequeue_script ('jquery-blockui');
wp_dequeue_script ('jquery-placeholder');
wp_dequeue_script ('fancybox');
wp_dequeue_script ('jqueryui');
}
}
}
Pasirinkę vieną iš šių metodų (ypač paskutinį), iškart pastebėsite padidėjusį internetinės parduotuvės įkėlimo greitį ir daug mažesnį procesoriaus resursų suvartojimą (CPU).