Latest News: (loading..)
milerwan

Store v2.3.4 BS with Newsdesk revival and responsive boxes

35 posts in this topic

@@milerwan

 

If you DON'T have something in your admin like "Tools - Server Info" so you can find what HTTP Server and PHP Version your using, then you can create a file in you root (public_html) directory and name it phpinfo.php.
Place this: <? phpinfo(); ?> in the file and save and close. Then you can pull it up through your browser like this: http://www.infinitydream.com/phpinfo.php to find what SERVER_SOFTWARE and PHP Version your working with.
It does make a difference on how you implament things. Hopefully your running Apache and PHP 7.

This compresses a whole lot of stuff on your site. You can put it in your root directory in the .htaccess file. It will compress HTML, CSS, JavaScript, Text, XML and fonts. Some people prefer, or systems require GZIP. But DEFLTE works great for me. It all depends if your using mod_deflate or mod_gzip.
Look for something like this: <IfModule mod_deflate.c> or <IfModule mod_gzip.c>. <IfModule mod_deflate.c> is usually for Apache 2 and <IfModule mod_gzip.c> is usually for Apache 1 wich is an older version of Apache.
If you have <IfModule mod_deflate.c> then you can use the below for compression. Some people might think it's over kill but it works beautifully for me. With this I don't even have to use the "Configuration - GZip Compression" in my admin. This will speed your site up.


<IfModule mod_deflate.c>
# Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/atom+xml
  AddOutputFilterByType DEFLATE application/font-woff
  AddOutputFilterByType DEFLATE application/font-woff2
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/json
  AddOutputFilterByType DEFLATE application/ld+json
  AddOutputFilterByType DEFLATE application/manifest+json
  AddOutputFilterByType DEFLATE application/pdf
  AddOutputFilterByType DEFLATE application/rdf+xml
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/schema+json
  AddOutputFilterByType DEFLATE application/vnd.geo+json
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE application/x-font/eot
  AddOutputFilterByType DEFLATE application/x-font/otf
  AddOutputFilterByType DEFLATE application/x-font/ttf
  AddOutputFilterByType DEFLATE application/x-font/woff
  AddOutputFilterByType DEFLATE application/x-httpd-php
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/x-web-app-manifest+json
  AddOutputFilterByType DEFLATE font/eot
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE font/woff
  AddOutputFilterByType DEFLATE image/bmp
  AddOutputFilterByType DEFLATE image/gif
  AddOutputFilterByType DEFLATE image/jpg
  AddOutputFilterByType DEFLATE image/jpeg
  AddOutputFilterByType DEFLATE image/png
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/webp
  AddOutputFilterByType DEFLATE image/x-ico
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE image/x-generic
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/eot
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/pdf
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/richtext
  AddOutputFilterByType DEFLATE text/tff
  AddOutputFilterByType DEFLATE text/xml
  AddOutputFilterByType DEFLATE text/xsd
  AddOutputFilterByType DEFLATE text/xsl
  AddOutputFilterByType DEFLATE text/x-generic
</IfModule>

----------------------------------------------------------------------------------------------

In a broad sense this basicly tell the sever to accept what your're giving it and compresses the response and allows it to uderstand what's going on and helps with cache. Header append works for me but with some systems you'll have to use Header set. I nabbed the definition off Fastly.

"The Accept header tells you what sort of content the browser prefers, User-Agent specifies which version of what browser it is, Accept-Language contains a list of languages (and dialects) that the user has configured, and Accept-Encoding shows which compression schemes the browser supports." This will speed your site up.

<IfModule mod_headers.c>
  <FilesMatch "\.(js|css|xml|eot|flv|gif|gz|htm|html|ico|jpg|jpeg|otf|png|pdf|php|swf|text|ttf|woff|woff2)$">
    Header append Vary: Accept-Encoding
  </FilesMatch>
</IfModule>

----------------------------------------------------------------------------------------------

This tells the browsers how long to cache your info for so they don't have to pull a fresh copy of your pages every time someone clicks around on a site. With this, it will pull from the cache. This will speed your site up.

Set the "Header set Cache-Control" to public, private or proxy-revalidate (among other things) per your need. The max-age= is in seconds. The longer you set it for the more they can pull from the cache.

You need this because you have 77 things that the expiration is not specified on your homepage alone. This is for the "Leverage browser caching for the following cacheable resources". This will set the "expiration not specified" to a specific time.

<IfModule mod_expires.c>
  <FilesMatch "\.(pdf|flv)$">
    Header set Cache-Control "public, max-age=2629746"
  </FilesMatch>
  <FilesMatch "\.(bmp|cur|gif|ico|jpg|jpeg|png|svgz|swf|webp)$">
    Header set Cache-Control "public, max-age=2629746"
  </FilesMatch>
  <FilesMatch "\.(css|js)$">
    Header set Cache-Control "proxy-revalidate, max-age=31556926"
  </FilesMatch>
  <FilesMatch "\.(html|htm|php|txt|xml)$">
    Header set Cache-Control "proxy-revalidate, max-age=600"
  </FilesMatch>
  <FilesMatch "\.(woff|woff2|ttf|eot)$">
    Header set Cache-Control "public, max-age=2629746"
  </FilesMatch>
</IfModule>

-----------------------------------------------------------------------------------------------

 

Bill

Share this post


Link to post
Share on other sites

@@milerwan

 

For the: "Eliminate render-blocking JavaScript and CSS in above-the-fold content". It means you have .js blocking script resources and some .css blocking resources. This causes your site pages to render slowly. If you can, put as much of it below the fold. Right now, much of it is above the fold.
The fold is the part where you can see with your eyes when your site comes up to be viewed.

These javasrcipts are above the fold. Put as much .js in the template_bottom that you can. I put every .js that I can in the template_bottom. Any .css that isn't needed to render your page can be put there as well. If the .js and .css isn't called upon to load the page right away you can put it in the template_bottom.
As a general rule the .css goes above the .js no matter where you decide to put it.

http://www.infinitydream.com/ext/jquery/jquery-2.2.3.min.js
http://www.infinitydream.com/ext/menu_xs/js/modernizr.custom.js
http://www.infinitydream.com/ext/menu_xs/js/jquery.dlmenu.js

For the: "Optimize CSS Delivery of the following" generally means put to them in the right order (no matter where you decide to put them). By testing your site, you'll see what gets called upon first and what is called upon last. Putting them in the right order will speed your site up.

-----------------------------------------------------------------------------------------------

The "Optimize images" means to commpress and condense your images. There's free (and paid for) optimizers out there. Some of the free ones aren't to bad and they can do pictures in bulk.
Both Caesium and PIXresizer are free and they work ok. There's better optimizers out there but, if your tight on cash they'll do for now. You'll save a whole lot of bytes if you use them.

-----------------------------------------------------------------------------------------------

I already explained to you in an earlier post about "Minify JavaScript and CSS". If you have a whole file of nothing but .js that isn't minified already, go ahead and minify the whole file at one time with the .js minifier I mentioned about. Do the same for the .css. Less bytes means less the time the servers and browsers have to comb through you pages to figure out whats what before it loads your pages.

------------------------------------------------------------------------------------------------

If you do all (or some of) what I've suggested it will "Reduce server response time". And that is the goal you're trying to reach.

------------------------------------------------------------------------------------------------

Share this post


Link to post
Share on other sites

For the: "Combine images using CSS sprites" basically means to take a bunch of little pitcture and make them into one big picture. It takes the browser less time to read and decipher one pidtue than it does 10 pictures. Look in your public_html/ext/colorbox/images/controls.png and you'll see what I mean.

------------------------------------------------------------------------------------------------

For the: "Defer parsing of JavaScript" basically means, if it isn't essential or needed for the page to load, you can have it load after all (or after the majority of the important stuff on the page) loads. Some stuff can wait until the end of the page load, to load.
And some of it you can load in parallel while the page is loading. "Defer" basically means wait until the end to load and, "aysnc" means it can load during the page load but, don't get in the way of the essential things that are trying to load. Aysnc is an acronym for Asynchronous Load which is opposite of Synchronous Load.
Synchronous Load basically mean to load in a string instead of in parallel. Defer, Asynchronous Load and Synchronous Load is more technical than that but, I'm speaking in general terms so it can make more sense. To me it's a bunch of mambo jumbo because I'm not a coder like some of the guys and gals on here. This stuff (and much nore) can be really confusing.

------------------------------------------------------------------------------------------------

For the "Specify image dimensions" it means, you should tell the browser what size the image is so it doesn't have to try and figure it out while it's rendering the page. If you don't tell it what size it is ahead of time and, it has to try and figure it out on the fly, that will slow down your page load time.

------------------------------------------------------------------------------------------------

You might know some of the stuff I've mentioned already and some of it you may not. I hope you can see that I'm truly trying to help you out and that I'm NOT trying to treat you like a little school boy. The osCommerce community is about helping one another out. Everything I've suggested and mentioned here today I had to learn the hard way. I'm trying to prevent you from having to learn the hard way. Take care @@milerwan.

 

Bill

Share this post


Link to post
Share on other sites

I identified the problem of a big slowdown occurs on my product pages.
It's caused by also_purchased query and the absence of the indexing of orders_products table.

Now the server response is down from 6.8 to 0.52 seconds !

Try yours. ;)

Edited by milerwan

Share this post


Link to post
Share on other sites

@@ecommunlimited

I have installed "mod_pagespeed" for Apache server and now first page loaded below 1 second (instead of 2.xx before).
I will minimize css when I have time.
Thank you very much for your advices.  :thumbsup:

Share this post


Link to post
Share on other sites

I have modified the tep_db_query script of the carousel boxes so that they are related to the content of the displayed category.
Now reviews, specials, featured and new products of the category/sub-category are shown on the left column. :)
If no target product, the box only show the link button.

Share this post


Link to post
Share on other sites

Hi,

@@milerwan@@ecommunlimited

I have a query how to reduce database queries in oscommerce 2.3.4, To reduce server response time.

warm Regds./

radhavallabh

Share this post


Link to post
Share on other sites

Posted (edited)

On 20/05/2017 at 11:41 AM, radhavallabh said:

Hi,

@@milerwan@@ecommunlimited

I have a query how to reduce database queries in oscommerce 2.3.4, To reduce server response time.

warm Regds./

radhavallabh

Do you have a page on your website which is slower than others to display ?
If all the pages are assigned then you need to follow the indications of this post.

Edited by milerwan

Share this post


Link to post
Share on other sites
7 hours ago, milerwan said:

Do you have a page on your website which is slower than others to display ?
If all the pages are assigned then you need to follow the indications of this post.

Hi,

The Time to First Byte is the slowest to my website, Rendering after that is fast as I have incorporated many aspects of many speed optimizing posts of this forum..

So basically I am trying to figure and resolve all the issues that may cause it on a oscommerce store.

If you could please help shed more light on why the TTFB may be of 1.8 sec hence I could look over all those aspects and scripts of the store.

Awaiting your valuable guidance...

Warm Regds/

radhavallabh

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now