TechBlogSD - Kaikki WordPressin ja WEB: n kehittämiseen
WEB- ja WordPress - ohjeet, uutiset, arvostelut teemoista ja laajennuksista

Korjaa hidas sivun lataus WooCommercen avulla wc-ajax = get_refreshed_fragments

7

WooCommerce on yksi suosituista laajennuksista, joiden avulla WordPress -sivustostasi tulee verkkokauppa. Useimmat suositut teemat tarjoavat integroidun myymäläominaisuuden WooCommerce -laajennuksen avulla. Käytämme myös WooCommercea joillakin sivustoillamme. Kun teimme äskettäin GTmetrixin ja pingdomin sivunopeuden tarkistuksen, huomasimme, että komponentin "wc-ajax = get_refreshed_fragments" lataaminen kesti noin sekunnin. Analyysin jälkeen havaitsimme, että useimmissa muissa tapauksissa kestää jopa 5-10 sekuntia Jos sinulla on sivunopeusongelma WooCommerce Ajax -puheluiden kanssa, tässä on ratkaisuja ongelman korjaamiseen eri tilanteissa.

Korjaa WooCommerce AJAX -ongelma

Tässä artikkelissa olemme käsitelleet seuraavia WooCommerce wc-ajax = get_refreshed_fragments -aiheita:

  1. Mikä on wc-ajax = get_refreshed_fragments?
  2. Sivun lataamisongelma Ajax -järjestelmänvalvojan puheluissa
  3. Kuinka korjata hidas sivujen lataus WooCommercessa järjestelmänvalvoja Ajaxin avulla?
    1. Poista vain ostoskorin pirstoutuminen käytöstä sivustosi etusivulla
    2. Poista käytöstä vain ostoskorin pirstoutuminen etusivulla ja viesteissä
    3. Poista kaikki WooCommerce -tyylit ja -skriptit käytöstä kaikilla sivuilla paitsi kauppasivuilla
  4. Lisäosan käyttäminen WooCommerce -järjestelmänvalvojan Ajax -puhelun pysäyttämiseen
  5. Sivun nopeuden testaus
  6. WordPress -syke -sovellusliittymän pysäyttäminen

1 Mikä on wc-ajax = get_refreshed_fragments?

Kesti jonkin aikaa, ennen kuin ymmärsimme, että sivun nopeuskaavion päivitetyt palaset on kutsuttu WooCommerce -laajennuksesta. Koska sivustoamme isännöitiin SiteGround Cloud VPS: ssä, vaikutus oli pienempi ja WooCommerce Ajax -puhelu kesti noin sekunnin. Jos isännöit Bluehostin kaltaista jaettua isännöintiä, saatat huomata pidemmän sivun lataamisen viiveen 3–10 sekuntia.

Alla on kuvakaappaus pingdomista, joka näyttää pitkän odotusajan sivun "wc-ajax = get_refreshed_fragments" lataamiselle. Näet myös, että tämä komentosarja näkyy Google PageSpeed ​​Insights -työkalun renderöinnin esto -ongelman alla ja löytää sen GTmetrixin vesiputouskaavion alla.

WooCommerce Ajax -sivun latausongelma

Pohjimmiltaan WooCommerce yrittää kerätä ostoskorin tiedot soittamalla skriptille ja kestää kauan tehtävän suorittamisessa. Laajennus saa välimuistissa olevat ostoskorin tiedot jokaiselta sivulta ja näyttää uusimmat ostoskorikohteet soittamalla järjestelmänvalvojalle Ajax. Voit nähdä skriptin sivustosi jokaisella sivulla alla olevan kaltaisena:

<script type='text/javascript'> /* <![CDATA[ */ var wc_add_to_cart_params = {"ajax_url":"/wp-admin/admin-ajax.php","wc_ajax_url":"/?wc-ajax=%%endpoint%%","i18n_view_cart":"View Cart","cart_url":"http://localhost/shop/cart/","is_cart":"","cart_redirect_after_add":"yes"}; /* ]]> */ </script>

Tämä koskee localhost -ympäristöä, ja sinun pitäisi nähdä koodi omalla URL -osoitteellasi.

Korjaa hidas sivun lataus WooCommercen avulla wc-ajax = get_refreshed_fragments

WooCommerce Ajax Fragments on Page Source

2 Järjestelmänvalvoja Ajax -puhelut ja sivun lataaminen

WooCommerce käyttää tätä ostoskorin pirstoutumisen Ajax -kutsua päivittääkseen ostoskorin kohteet ja kokonaismäärän päivittämättä sivua. Järjestelmänvalvojan Ajaxille soittaminen jokaisella sivulla viivästyttää sivusi latausaikaa huomattavasti ja kuluttaa myös paljon palvelinresursseja. Toinen ongelma on, että laajennus tekee tämän toiminnon jopa sivulla, jolla ei ole ostoskoria tai tuotteeseen liittyviä tietoja.

Yllä oleva kuvakaappaus osoittaa, että ongelma on olemassa Tietoja meistä -sivulla, jolla ei ole saatavilla WooCommerce -komponentteja. Ostoskorin poistaminen sivulta ei siis paranna sivun latausnopeutta. Tarvitsemme poistaa ostoskorin päivityksen käytöstä, jos ostoskärryjä tai tuotteita ei näy.


Aiheeseen liittyvä WooCommerce -artikkeli:

3 Kuinka korjata ongelma wc-ajax = get_refreshed_fragments?

Ongelma on korjattava poistamalla skripti muokkaamalla teemasi Functions.php -tiedostoa. Voit muokata toimintoja.php WordPress -hallintapaneelin kautta tai käyttämällä FTP: tä. Funktioiden.php -tiedoston muokkaamisen sijaan luo aliteema ja lisää alateemaan lisätoimintoja. Tämä auttaa sinua säilyttämään muutokset, kun päivität teeman. WooCommerce Ajax -kärryjen pirstoutumiskomentosarjan poistamiseen on kolme vaihtoehtoa.

  • Poista vain ostoskorin pirstoutuminen käytöstä sivustosi etusivulla
  • Poista käytöstä vain ostoskorin pirstoutuminen etusivulla ja viesteissä
  • Poista kaikki WooCommerce -tyylit ja -skriptit käytöstä kaikilla sivuilla paitsi kauppasivuilla.

Keskustelkaamme kaikista kolmesta vaihtoehdosta yksityiskohtaisesti ja teemme vain yhden asian, jota vaaditaan.

3.1. Poista ostoskorin pirstoutuminen käytöstä etusivulla

Siirry WordPress -hallintapaneelissa kohtaan "Ulkoasu> Editor" ja etsi toiminto.php -tiedosto. Lisää seuraava koodi tiedoston loppuun.

/** Disable Ajax Call from WooCommerce */ 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'); }

Sen pitäisi näyttää alla olevassa editorissa, kun olet liittänyt koodin, napsauta "Päivitä tiedosto" tallentaaksesi muutokset.

Korjaa hidas sivun lataus WooCommercen avulla wc-ajax = get_refreshed_fragments

Teematoimintojen muokkaaminen PHP -tiedosto

Jos haluat käyttää FTP: tä, kirjaudu palvelimellesi FTP -tilillä. Siirry kohtaan "/wp-content/your-theme/" ja etsi "functions.php" -tiedosto. Muokkaa ja lisää yllä oleva koodi tiedoston loppuun ja lähetä muokattu tiedosto takaisin palvelimelle.

Kun tiedosto on päivitetty, siirry "WooCommerce> Asetukset" -valikkoon ja siirry "Tuotteet" -välilehden "Näyttö" -osioon. Ota valintaruutu käyttöön "Ohjaa ostoskorisivulle onnistuneen lisäyksen jälkeen" -vaihtoehtoa vastaan.

Korjaa hidas sivun lataus WooCommercen avulla wc-ajax = get_refreshed_fragments

Ota uudelleenohjaus ostoskorisivulle käyttöön

Tämä auttaa asiakasta siirtymään ostoskorin pääsivulle eikä odottamaan kauan tuotteen lisäämisen jälkeen ostoskoriin. Muutoin vaikka tuote lisätään, ostoskorisi ei välttämättä näytä päivitettyjä tietoja, kun olet samalla sivulla, kun ostoskorin pirstoutumisskripti on poistettu käytöstä.

3.2. Poista ostoskorin pirstoutuminen etusivulta ja viesteistä

Yllä oleva koodi poistaa ostoskorin komentosarjan käytöstä vain staattisella etusivulla. Jos haluat poistaa komentosarjan käytöstä kaikissa viesteissä, yritä lisätä alla oleva koodi teemasi function.php -tiedostoon.

/** Disable Ajax Call from WooCommerce on front page and posts*/ 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'); }

3.3. Kaikkien WooCommerce -tyylien ja -skriptien poistaminen käytöstä

WooCommerce on resursseja kuluttava laajennus, joka voi viedä palvelinresurssisi kaikkien asiaankuuluvien tyylitaulukoiden ja komentosarjojen lataamiseen. Jos sinulla on vain muutamia tuotteita, joissa on satoja tuhansia blogiviestejä, on järkevää poistaa tai poistaa käytöstä kaikki WooCommercen aiheeseen liittyvät asiat blogiviesteissä. Toisin sanoen voit sallia vain WooCommerce -skriptit kauppaan liittyvillä sivuilla, jotta kaikki muut sivut latautuvat nopeammin.

Lisää alla oleva koodi toimintoihin.php -tiedostoon Githubin sisällön perusteella. Koodi tarkistaa ensin, onko sivustossasi WooCommerce -laajennus, ja poistaa sitten tyylit ja komentosarjat käytöstä kaikilla sivuilla paitsi tuote-, ostoskori- ja kassasivuilla. Tämä auttaa poistamaan "wc-ajax = get_refreshed_fragments" -kutsut kaikista viesteistä/sivuilta paitsi WooCommerce-aiheisille sivuille.

/** Disable All WooCommerce Styles and Scripts Except Shop Pages*/ 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_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' ); } } }

Varoitus: Muista lisätä vain yksi koodilohko yllä olevista kolmesta vaihtoehdosta. Älä lisää toimintoja.php -tiedostoon useita tai kaikkia koodeja. Kun poistat skriptit leveältä puolelta, poista käytöstä myös Ota Ajax -lisäys ostoskoriin -painikkeet käyttöön arkistoissa -vaihtoehto, joka on käytettävissä WooCommerce> Asetukset -valikon Näyttö -osiossa.

4 Laajennusten käyttäminen WooCommerce Admin Ajax -puhelujen lopettamiseen

Jos et ole perehtynyt teeman tiedoston muokkaamiseen tai alateeman luomiseen, on olemassa laajennuksia, jotka tekevät työn puolestasi. Ensimmäinen vaihtoehto on käyttää premium -WP Rocket -laajennusta. Voit ostaa WP Rocketin, asentaa ja aktivoida laajennuksen WordPress -hallintapaneelistasi. Tässä laajennuksessa ei ole erityisiä asetuksia WooCommercelle. Laajennuksen yksinkertainen aktivointi poistaa WooCommerce -ostoskorin pirstoutumisen käytöstä kaikilla sivustosi sivuilla. Se toimii logiikan avulla, joka tarkistaa, sisältääkö sivusi lähdekoodissa Ajax -fragmenttikutsun.

Jos kyllä, se tarkistaa, että ostoskori on tyhjä sivua ladattaessa. Kun molemmat ehdot täyttyvät, WP Rocket tallentaa sivun välimuistiin ohimenevästi ja toimii, kun sivu ladataan seuraavan kerran. Jos löydät mitään ongelmaa, voit käyttää auttaja plugin deaktivoida välimuistiin Ajax palasia.

Lisäosat, kuten W3 Total Cache, tarjoavat myös fragmenttivälimuistin premium -laajennuksena. Sinun on kuitenkin maksettava 99 dollarin vuositilaus premium -ominaisuuksien saamiseksi. Sen sijaan WP Rocket maksaa 49 dollaria vuodessa helpolla asennuksella, ja voit myös saada 10% alennuksen tilaamalla heidän uutiskirjeensä.

5 Sivun nopeuden testaaminen

Jos olet lisännyt koodin manuaalisesti, puhdista välimuistilaajennuksen välimuisti ja puhdista lakan välimuisti palvelimelta, jos se on käytettävissä. Samoin tyhjennä kaikki välimuistin tasot, jos olet asentanut WP Rocket -laajennuksen. Tarkista sen jälkeen Google PageSpeed ​​Insights ja sinun ei pitäisi nähdä skriptiä "wc-ajax = get_refreshed_fragments" hahmontamisen estävän JavaScript-osion alla. Voit myös helposti saada 100 pistettä mobiililaitteilla ja tietokoneilla, kun estoaika on 0 ms.

Korjaa hidas sivun lataus WooCommercen avulla wc-ajax = get_refreshed_fragments

Poista WooCommercen tyylit ja komentosarjat käytöstä

Myös pingdomissa WooCommerce-komentosarjan, joka kutsuu "wc-ajax = get_refreshed_fragments", ei pitäisi näkyä "Tiedostopyynnöt" -osiossa. Sivun nopeuspisteitä tulisi nostaa erityisesti WooCommerce Ajax -skriptin poistamisen jälkeen käytöstä.

6 WordPress Heartbeat -sovellusliittymän pysäyttäminen

WooCommerce -laajennus lisää monia houkuttelevia koontinäytön widgettejä, jotka näyttävät reaaliaikaisen myynnin ja tilastot. Se maksaa kuitenkin paljon, jos vedät sivustosi latausnopeutta. Koontinäytön widgetit päivittävät sisällön dynaamisesti käyttämällä järjestelmänvalvojan Ajax -puheluita, jotka muistuttavat ostoskorin pirstoutumista WooCommercessa. Tämä tehdään standardin WordPress -sovellusliittymän, sydämen syke -API: n, avulla.

Yleensä emme suosittele näiden dynaamisten widgetien käyttöä kojelaudalla. Voit yksinkertaisesti poistaa admin-ajax-puhelut tai WordPress-syke-sovellusliittymän vähentääksesi palvelimen kuormitusta ja parantaaksesi WordPress-sivustosi sivujen latausnopeutta. Lisäosat, kuten WP Rocket, voivat auttaa poistamaan syke -sovellusliittymän hallintapaneelista.

Lopulliset sanat

WooCommerce on yksi helpoista tavoista rakentaa verkkokauppa WordPressissä. Mutta verkkokaupat tarvitsevat tiettyjä perustoimintoja, kuten dynaamisen ostoskorin päivityksen. Kokemuksemme mukaan olemme nähneet, että 90% WooCommerce -käyttäjistä myy yksinkertaisia ​​digitaalisia tuotteita. Heidän kauppansa on vain lisäosa suureen blogiin tai sisältösivustoon. Tässä tapauksessa suosittelemme vahvasti poistamaan Ajax -järjestelmänvalvojan puhelut käytöstä, jotta kaikki muut sivuston sivut latautuvat nopeammin vaikuttamatta käyttökokemukseen.

Jos sinulla on täysimittainen kauppa, tarvitset ostoskorin pirstoutumisominaisuuden päivittääksesi ostoskorin kohteet dynaamisesti päivittämättä sivua. Varmista tällöin, että sinulla on laadukas isännöintipalvelin sekä välimuistilaajennukset, kuten WP Rocket tai W3 Total Cache, jossa on premium -vaihtoehto sivun fragmenttien välimuistiin tallentamiseksi sivun nopeuden parantamiseksi.

Leave A Reply

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. HyväksyäLisätietoja