Temele WordPress care folosesc timthumb sunt naspa

Tehnictimthumb.php e un script folosit in multe teme WordPress, unele chiar premium, care se ocupa de generarea thumbnailurilor.

In trecut, WordPress nu stia featured images si se folosea destul de mult timthumb de catre dezvoltatorii de teme dar acum chiar nu mai e nevoie.

De ce sa folosesti un script care sa faca o treaba ce poate fi facuta direct din WordPress, nu? Dar totusi inca se mai foloseste timthumb.

Problema mea cu timthumb nu e doar ca e in plus ci mai degraba este legata de performanta.

timthumb face thumbnailurile in mod dinamic, adica le genereaza la fiecare afisare de pagina. Asta inseamna resurse consumate degeaba, e mult mai eficient ca thumb-urile sa fie generate o singura data, cand sunt incarcate in Media Gallery, iar apoi la fiecare afisare de pagina sa fie… well, afisate.

Iar daca pe pagina sunt multe thumbnailuri sau aveti un trafic mai mare metoda asta de afisare a imaginilor, printr-un fisier php, afecteaza performanta.

Desi timthumb are un fel de cache, ca s-au gandit si ei la un moment dat ca nu e ok treaba, ramane totusi o problema pentru ca la afisarea imaginii, daca va uitati la link, o sa vedeti ca linkul e catre timthumb.php nu direct catre imagine.

Deci chiar daca imaginea e servita din cache, nu generata pe loc, tot se trece prin php pentru afisarea imaginii.

Chestia asta nu e buna. De fapt, daca firma de hosting foloseste Apache e cam totuna, nu are nicio importanta. Dar daca foloseste LiteSpeed sau Nginx o sa va explic de ce e nasol.

Apache lucreaza in modul urmator cand proceseaza un script php: Apache -> mpm_prefork -> mod_php – > fisier.php si inapoi catre Apache.

Cand are de afisat o imagine lucreaza la fel: Apache -> mpm_prefork -> mod_php -> fisier.jpg si iar inapoi catre Apache.

Nginx serveste elementele statice (jpg, png, css, js) foarte rapid, fara sa le mai treaca prin php: nginx -> fisier.jpg si inapoi.

Si asa e foarte normal sa se intample pentru ca e o simpla imagine, nu e script, n-ai ce sa procesezi la ea, o iei si o afisezi.

Asta e si motivul pentru care CDN-urile gen CloudFlare sau MaxCDN folosesc Nginx. La fel ca si Instagram sau Pinterest care si ei au de servit multe imagini rapid.

LiteSpeed, la fel ca Nginx, serveste elementele statice foarte rapid, testele arata o diferenta de pana la 600% fata de Apache.

Noi, la Simplenet, folosim LiteSpeed pe shared si Nginx pe VPS-uri. Astfel, elementele statice sunt servite foarte rapid. In plus, avem si harddisk-uri SSD care aduc inca o viteza in plus.

Insa daca tema WordPress afiseaza imaginile cu timthumb.php se anuleaza tot avantajul asta, ca in loc sa-l lase pe LiteSpeed sa serveasca rapid poza trebuie sa treaca prin php.

In plus, exista niste pluginuri WordPress care fac Lazy Load, adica incarca imaginile din pagina treptat, pe masura ce vizitatorul face scroll, lucru care ajuta la imbunatatirea vitezei de incarcare.

Ei bine, Lazy Load nu functioneaza daca imaginile sunt incarcate prin timthumb.php deci nici cu asta nu avem noroc. Parca de-a dracu’ e facut timthumb, sa fie impotriva optimizarii performantei WordPress.

In concluzie, intreb si eu, ca nu-mi dau seama singur – pana la urma la ce e bun timthumb? De ce il mai folosesc oamenii care fac teme WordPress? Care-i avantajul?


Comments

2 răspunsuri

  1. Avatar Vasile Ruscior
    Vasile Ruscior

    Cam din același motiv pentru care unele teme copil folosesc @import, anume că așa scrie într-un tutorial din 2009.

    1. Avatar Andrei Chira
      Andrei Chira

      Majoritatea temelor sunt naspa pentru ca sunt facute cu focus pe incepatori, sa le fie usor sa aiba site fara sa munceasca. Vezi ThemeForest, paradisul temelor de 2 lei.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *