Menu

#568 Add per user option to make PGV dialup friendly

phpGedView
open
nobody
5
2006-04-02
2006-04-02
No

PGV is heavily loaded with javascript to produce all
its bells and whistles. This is wonderful on a cable
connection, where the download time is not noticed.
But, on dialup, it is extremely painful. My pedigree
and individual pages are coming in at 220-300KB each
for just the html. On dialup, that is taking easily
100 seconds to download the html for the page. Then
the inline elements, media and icons, also download,
stretching the time out to 3-4 minutes per page.

So, please add a per user option of "user_speed". The
minimum value set would be "dialup" and "cable".
Adding "DSL" as a middle of the road option would be
nice, but not necessary at the beginning. A
"bare_bones" option to display the smallest html
possible would also be a nice option, but again not
necessary. Another thought just occurred.
"bare_bones" could also be used if the "user" was
detected to be a search engine spider.

Then go through the verbose sections and wrap them
with:

if($user['user_speed'] == "cable") {all the goodies}
else if ($user['user_speed'] == 'dialup' {minimal
useable functions}
else {bare_bones display. As long as they have one
method/link to leave the page to another, that is
enough.}

An example:
On the pedigree.php page, actually in functions_print.
php,

if($user['user_speed'] == "cable") {normal $LINK_ICONS}
else if ($user'user_speed'] == 'dialup' {
just add an 2 icons, pedigree and hourglass
}
else /*bare_bones*/ {treat as if
$LINK_ICONS=="disabled", user can leave page by
clicking on the individual}

Each display of the $LINK_ICONS is costing a full
second in download time at dialup speeds. On a 4-tier
pedigree, that is 15 seconds.

Another thing: If details are off on the pedigree
chart, the size is within 4k of when they are on. All
the details are sent in the html, but with
visibiity=hidden. So the page is still 250K in size.
Found out why. Non-obvious. Click in box displays
those details. Well, having that on for cable, and off
for dialup would save a lot of download time.

Another area where this needs work is the headers.
They are averaging 40-60KB. That is 10-30 seconds
depending on the connection speed.

For anonymous users, it would be wonderful if the speed
could be autodetected, but you will probably have to
resort to using an admin choice of "default cable" or
"default dialup".

The people most likely to have "interesting things to
add" to the site, are grandparents. The odds today are
that they are still on dialup. They won't use the site
if it takes too long to load and do anything.

Discussion

  • John Finlay

    John Finlay - 2006-04-03

    Logged In: YES
    user_id=300048

    I used to use PGV from a dialup connection on an old 300Mhz
    machine and I didn't feel like it was much slower than any
    other website.

    I did have quite a bit of memory though so there wasn't a
    long render time. On a slow computer without much memory,
    it can take a long time for the page to render.

    One thing that you can do now to improve download time is to
    to turn zlib.output_compression On as described in the
    readme file. On average this will reduce bandwidth by about
    50% and all the common browsers automatically support it.

    Work is being done by some developers to automatically
    detect spiders and reduce the bandwidth for them since they
    don't send the proper headers to enable compression.

    I am toying with the idea of adding some ajax-like code for
    some of the popups and extras so that the data is loaded on
    request instead of on page load.

    --John

     
  • ColoredPixels

    ColoredPixels - 2006-04-04

    Logged In: YES
    user_id=1337066

    Turning on compression helped. It took a page down from
    260K to 30K. Works good as a stopgap, but I want more.

    Well, if you put in a user_speed setting for the users and
    an admin choice for the default for anonymous, the code can
    be optimized over time to use it. The changes to use it
    don't all have to happen at once. It is just a little
    difficult for me to do privately, as it is a database schema
    change. Once the variable is set, I an tinker and optimize.

    Thinking it over, suggested data values could be:
    cable: use everything
    dialup: trim where you can
    spider: just data with minimal links, no print, lang,
    themes, reports, etc...

    Doing this also allows an admin to turn his own acount down
    to "spider" levels, and see what exactly the search engines
    are going to see and record. The programmers will be able
    to fine tune the display rather quickly this way.

    Right now, there is just too much info on a page that
    belongs to other individuals, and the search engines are
    going to be associating facts with the wrong individuals.

    To see what i mean, on a unix machine, use "lynx" to look at
    your own web site. That is a quick and dirty way to see
    what the search engines are going to see a site as. The
    first 70 lines and 90 urls of the page are header links
    which will be identical across the whole site. In spider
    mode, you would strip out almost all of that.

    Go to an individual.php page, and you get the birth/death/
    marriage/etc of every parent, sibling, and child listed on
    the page for that "individual". You also get a listing of
    all the grand children. It should only have links to each
    of these relatives that the spider can follow, instead of
    having their full life histories. With too much unrelated
    data, using a search engine to lookup an individual will
    only get you within two generations. Close, but not right.

     
  • Laie Techie

    Laie Techie - 2006-04-04

    Logged In: YES
    user_id=1278885

    We could also create slimmed down skins / themes. My
    gorgeous theme is roughly 140KB (including graphics and
    JavaScript for both PGV and my forum). I will definitely
    create a lite version (at least a few of my relatives are
    still on dialup).

    For comparison, "standard" weighs in at 75KB, and "minimal"
    is a whopping 145KB. BTW, why does "minimal" have a bigger
    bandwidth impact than "standard"?

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.