I've got a site in which a page takes ten seconds to load with opera, along with a further ten seconds to load the pictures. It is a php page running on apache. The Pictures are simply static images.

It runs superbly on chrome.... instant loading.

searching for that answer has pointed me towards a potential problem with keep alive and the possible lack of content length confusing opera, and even, it seems that content length is not being set through the server on either the static or non static content, but crippling keep alive around the server doubles the burden time!

Some sites have recommended crippling keep alive around the browser, but I am unwilling to suggest that to everybody that sights the page! Shall We Be Held possibly woofing in the wrong tree?

browser is opera 3.6.8 on Lucid Lynx. server is Apache 2.2.11.

apache.conf is apended... I believe it's the one which arrives from the box, although I reduced the KeepAlive timeout to three inside a vain attempt to obtain the page to load.

Shall We Be Held woofing in the wrong tree?

ServerRoot "/etc/apache2"

LockFile /var/lock/apache2/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 3
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
AccessFileName .htaccess
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>
DefaultType text/plain
HostnameLookups Off
ErrorLog /var/log/apache2/error.log
LogLevel warn
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined
Include /etc/apache2/conf.d/
Include /etc/apache2/sites-enabled/

The problem was with local DNS research. The problem was hidden because command line DNS resolution appeared to become OK, and chrome was lightning fast. Works out that chrome uses DNS prefetching, which does not make use of the local network stack. This put me onto completely the incorrect tack.

After developing a local bind service, opera appears to become working nicely.

So something to be careful when ever running chrome on a single platform as other browsers.

Don't disable keep-alive. It can make that certain connection may be used to get multiple pages (or images, or .js files, or .css files, etc.), which reduces page load time considerably.

Just make certain your scripts add Content-Length headers and all sorts of is going to be fine.